2049不容易系列之(4)——考新郎

来源:互联网 发布:python .如何使用 编辑:程序博客网 时间:2024/05/18 11:15
这个题目基于2048的题目增加了一个算组合的步骤。n个新郎中m个位错排,那么就是从n中找出m个的组合数乘以m个错排的数。
import java.util.Scanner;


public class P2049 {
public static void main(String[]args) {
Scanner scanner = newScanner(System.in);
long a[] =new long[21];
a[1]=0;a[2]=1;
for(int i=3;i
a[i]=(i-1)*(a[i-1]+a[i-2]);
}
int c = scanner.nextInt();
while(c-->0){
int n=scanner.nextInt();
int m=scanner.nextInt();
long cn =(factorial(n)/factorial(m))/factorial(n-m);
System.out.println(cn*a[m]);
}
}

private static long factorial(int n){
long cn=1;
while(n>1){
cn *=n;
n--;
}
return cn;
}

}

0 0
原创粉丝点击