1 条题解
-
0
C :
#include <stdio.h> int m = 0; int list[11] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int f(int n, int k) { if (k == 0) { m++; return 0; } for (int i = n; i >= 1; i--) { if (i != k && list[i] == 0) { list[i] = 1; f(n, k - 1); list[i] = 0; } } } int main() { int t; scanf("%d", &t); while (t--) { int n; scanf("%d",&n); f(n, n); printf("%d\n", m); m=0; } return 0; }
C++ :
#include<stdio.h> int a[57]; int main() { //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); int n,i; a[0]=0; a[1]=0; a[2]=1; for(i=3;i<=50;i++) { a[i]=(i-1)*(a[i-1]+a[i-2]); } int t; scanf("%d",&t); while(t--) { scanf("%d",&i); printf("%d\n",a[i]); } return 0; }
Java :
import java.util.Scanner; class Main { public static void main(String[] args) { JingSaiTiTest test=new JingSaiTiTest(); Scanner reader=new Scanner(System.in); int T=reader.nextInt();//读取一共有多少行数据 int[] s=new int[11];//方法 s[0]=0;s[1]=1;s[2]=2;s[3]=9; for(int i=4;i<11;i++){ int first=test.arrange(i+1)-1; int second=0; for(int k=1,j=i-1;k<i-1||j>0;k++,j--){ second=second+test.group(i+1, k)*s[j]; } s[i]=first-second; } for(int k=0;k<T;k++){//输出数据 int first=reader.nextInt(); for(int i=0;i<11;i++){ if(first==i){ System.out.println(s[i-1]); } } } } } class JingSaiTiTest{ public JingSaiTiTest(){ } int arrange(int a){ int k=1; for(int i=1;i<=a;i++){ k=k*i; } return k; } int group(int a,int b){ int c=arrange(a); int d=arrange(b); int e=arrange(a-b); int f=c/(d*e); return f; } int add(int a){ return 0; } }
- 1
信息
- ID
- 1342
- 时间
- 2000ms
- 内存
- 2048MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者