描述
台州学院首届新生程序设计竞赛迎来了好多参赛选手,多达N个,可是我们的机房计算机很有限,只有M台计算机,每个选手需要占1台计算机。本来应该安排一场资格赛的,可是来不及了,为了体现公平,竞赛组委会只好抽签决定了(希望下次我们的竞赛组织得更好些)。你能确定通过抽签从N个人中抽取M个人坐满机房有多少种可能性吗?
输入
数据的第一行包括一个正整数T,接下来有T组数据,每组数据占一行。 每组数据包含两个整数N(报名的人数,1<=N<=30),M(机房计算机的台数,0<=M<=30)
输出
每组数据输出一个整数,每个输出占一行
样例输入
2
3 1
4 4
样例输出
3
1
1 #include<stdio.h> 2 #include<string.h> 3 #include<ctype.h> 4 #include<math.h> 5 6 int comb(int n, int m) 7 { 8 int i,s=1; 9 if(m==0) return 1; 10 else return n*(comb(n-1,m-1))/m; 11 } 12 13 void solve() 14 { 15 int n,m,T,i; 16 scanf("%d",&T); 17 while(T--){ 18 scanf("%d %d",&n,&m); 19 if(m==0) printf("1\n"); 20 else{ 21 printf("%d\n",comb(n-1,m)+comb(n-1,m-1)); 22 } 23 } 24 } 25 26 int main() 27 { 28 solve(); 29 return 0; 30 }