题目描述
给定n组整数(a,b),计算组合数C(a,b)的值。如C(3,1)=3,C(4,2)=6。
输入
第一行为一个整数n,表示有多少组测试数据。(n <= 100000)
第2-n+1行,每行两个整数分别代表a,b;中间用空格隔开。(a,b <= 40)
输出
对于每组输入,输出其组合数的值。每个输出占一行。
示例输入
4 3 1 4 2 5 0 1 1
示例输出
3 6 1 1
#include <iostream> #include <algorithm> using namespace std; long long int combine1(int n,int m) { long long int sum=1; long long int i,j; for( i=1,j=n;i<=m;i++,j--) sum=sum*j/i; return sum; } int main() { int T,n,m,i,j,k; int a,b; cin>>T; while(T--) { cin>>a>>b; cout<<combine1(a,b)<<endl;
} return 0; }