题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2519
题 意:给你n,m;求出组合数学中C(n,m)的值。
思 路:按组合数学的公式计算结果。
代码如下:
#include <iostream>
using namespace std;
#include <string.h>
#include <stdio.h>
#include <climits>
#include <algorithm>
#define maxn 65535
typedef __int64 LL;
LL a[50];
double C( LL n, LL m )
{
double ans = 1;
for( int i = 2; i <= n; i ++ )
ans *= i;
for( int i = 2; i <= m; i ++ )
ans /= i;
for( int i = 2; i <= n-m; i ++ )
ans /= i;
return ans;
}
int main()
{
int T;
scanf ( "%d", &T );
while( T-- )
{
int n, m;
scanf ( "%d %d", &n, &m );
if( n < m ) printf("0\n");
else {
printf( "%.0lf\n", C( n, m ) );
}
}
return 0;
}