1052 - ACM CLUB晚会
时间限制 : 1 秒
内存限制 : 32 MB
ACM CLUB的会员越来越多了,为此,ACM CLUB想为会员们准备一个晚会,晚会节目由会员们表演。消息一出,报名要表演节目的会员很多,多达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> int main() { int t,n,m,i; double s1,s2; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); if(n<m) printf("0\n"); else { for(s1=1,i=n-m+1;i<=n;i++) s1*=i; for(s2=i=1;i<=m;i++) s2*=i; printf("%.lf\n",s1/s2); } } return 0; }
C++解答
#include<stdio.h> int main() { int t,n,m,i; double s1,s2; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); if(n<m) printf("0\n"); else { for(s1=1,i=n-m+1;i<=n;i++) s1*=i; for(s2=i=1;i<=m;i++) s2*=i; printf("%.lf\n",s1/s2); } } return 0; }
Java解答
import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Scanner; import java.math.*; public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); String[] zong = in.nextLine().split(" "); int start=Integer.parseInt(zong[0]); for(int i=0;i<start;i++){ String[] nei= in.nextLine().split(" "); int[] zh=new int[2]; zh[0]=Integer.parseInt(nei[0]); zh[1]=Integer.parseInt(nei[1]); if(zh[0]<zh[1]){System.out.println("0");continue;} System.out.println(check(zh[0],zh[1])); } } private static BigInteger check(int a, int b) { // TODO Auto-generated method stub BigInteger c = new BigInteger("0"); c=jx(a).divide((jx(b).multiply(jx(a-b)))); return c; } public static int jc(int i){ if(i<0) //<0退出 return -1; else if(i==0) //0的阶乘=1 return 1; else//0继续递归 return i*jc(i-1); } public static BigInteger jx(int i){ BigInteger n = new BigInteger("1"); BigInteger n1 = new BigInteger("1"); for (int j = 1; j <= i; j++) { n1 = n.multiply(BigInteger.valueOf(j)); n = n1; } return n; } }
Python解答
import sys,math for line in sys.stdin: t = line.split() data = map(lambda x:int(x),t) if len(data) != 1: if data[0] == data[1] or data[1] == 0: print 1 elif data[1] > data[0]: print 0 else: a = math.factorial(data[0]) b = math.factorial(data[1]) c = math.factorial(data[0]-data[1]) print a/(b*c) else: pass