1993 - 活动方案
时间限制 : 1 秒
内存限制 : 128 MB
山东建筑大学ACM协会队伍越来越强大了,为此,ACM协会想为大家准备一个party,party节目由会员们表演。消息一出,报名要表演节目的fans很多,多达N个,尤其是淘气的德才、非要嚷着要上台唱嗨歌,但是由于场地和时间有限,只能从这n个人中选m个,请问一共有多少种选择方法?
题目输入
数据的第一行是一个正整数T,接下来有T组数据,每组数据占一行。
每组数据包含两个整数N(来报名的人数,1<=N<=30),M(节目需要的人数0<=M<=30)。
题目输出
每组数据输出一个整数,每个输出占一行。
输入/输出样例
输入格式
5 3 2 5 3 4 4 3 6 8 0
输出格式
3 10 1 0 1
C语言解答
#include<stdio.h> double fact(int n); int main(void) { int i,n,a,b; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d%d",&a,&b); if(a<b) printf("0\n"); else printf("%.0f\n",fact(a)*1.0/(fact(b)*fact(a-b))); } return 0; } double fact(int n) { int i; double s=1; for(i=1;i<=n;i++) s=s*i; return s; }
C++解答
#include<stdio.h> long long int f(int n,int m) { if(n==m||n==0||m==0)return 1; if(m==1)return n; else return f(n-1,m)+f(n-1,m-1); } int t,m,n; int main() { scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); if(n>=m) { printf("%lld\n",f(n,m)); } else printf("0\n"); } return 0; }