Description
求C(N, M),即求M個數中選N個數的組合方案數。
Input
第一行一個正整數T (T<=10), 表示有T組測試數據。第二行~第T+1行,每行有2個正整數N,M (1<=N, M<=20)。
Output
對於每組輸入N,M,輸出一行,該行有一個數,為C(N, M)值。
Sample Input
2
3 5
1 20
Sample Output
10
20
[plain] #include <stdio.h>
__int64 fac(int a);
int main()
{
int num;
int n;
int m;
scanf("%d", &num);
while(num--)
{
scanf("%d %d", &n, &m);
printf("%d", fac(m)/fac(n)/fac(m-n));
if(num>0)
{
printf("\n");
}
}
return 0;
}
__int64 fac(int a)
{
int i;
__int64 sum;
sum=1;
if(a==0)
{
sum=1;
}
else
{
for(i=1; i<=a; i++)
{
sum*=i;
}
}
return sum;
}
#include <stdio.h>
__int64 fac(int a);
int main()
{
int num;
int n;
int m;
scanf("%d", &num);
while(num--)
{
scanf("%d %d", &n, &m);
printf("%d", fac(m)/fac(n)/fac(m-n));
if(num>0)
{
printf("\n");
}
}
return 0;
}
__int64 fac(int a)
{
int i;
__int64 sum;
sum=1;
if(a==0)
{
sum=1;
}
else
{
for(i=1; i<=a; i++)
{
sum*=i;
}
}
return sum;
}