计算组合数

提交数: 5596, 通过率: 23.21%, 平均分: 46.93

题目描述:

给出两个非负整数n和m,编写程序计算组合数C(n,m)的值,C(n,m)的意思是n个当中取m个,总共有多少种取法。

输入格式:

一行两个空格隔开的非负整数n,m。

输出格式:

输出一个数表示C(n,m)。

样例输入:

5 2

样例输出:

10

提示:

0<n<=50,0<=m<=n。

C(n,m) = n! / ( m! * (n-m)! ),其中!为阶乘符号,如n! = 1*2*3*4*...*n。

 

int类型的变量只能存储13以内的数的阶乘,long long类型的变量只能存储到20的阶乘。

n、m都可能大于20,所以不能把n或m的阶乘存放到一个变量中,要考虑边乘边除。

时间限制: 1000ms
空间限制: 128MB

来源: 原创