描述
求C(N, M),即求M个数中选N个数的组合方案数
格式
输入格式
第一行一个正整数T (T<=10), 表示有T组测试数据。第二行~第T+1行,每行有2个正整数N,M (1<=N, M<=20)。
输出格式
对于每组输入N,M,输出一行,该行有一个数,为C(N, M)值。
样例
样例输入
2
3 5
2 4
样例输出
10
6
C(N,M) = N的阶乘除以M的阶乘乘以(N-M)的阶乘
#include <stdio.h>
long long jc(int n)
{
long long k=1;
for(int i=1;i<=n;i++)
k*=i;
return k;
}
int main()
{
int n;
int a,b;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d%d",&a,&b);
printf("%lld\n",jc(b)/(jc(a)*jc(b-a)));
}
return 0;
}
#include <stdio.h>
int fact(int n){
int s=1,i;
for(i=1;i<=n;i++){
s*=i;
}
return s;
}
int main(void) {
int t,i,m,n;
scanf("%d",&t);
for(i=0;i<t;i++){
scanf("%d %d",&m,&n);
printf("%d\n",fact(n)/(fact(m)*fact(n-m)));
}
return 0;
}