组合问题
时间限制(普通/Java) :
1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 59 测试通过 : 20
总提交 : 59 测试通过 : 20
比赛描述
输入
多组数据。读到n=0 m=0结束
每组数据输入两个数字, n, m(0<=m<=n<30)
输出
每组数据对应输出 C(n,m) . 保证答案小于 2147483648.
样例输入
3 1
4 2
0 0
样例输出
3
6
提示
undefined
题目来源
NUPT ACM
#include<stdio.h>
int main(){
double n,m,result,i;
while(scanf("%lf%lf",&n,&m)==2 && (n||m)){
if(n-m<m){
m = n-m;
}
result = 1;
for(i=n; i>=(n-m+1); i--){
result *= i;
}
for(i=m; i>=1; i--){
result /= i;
}
printf("%d\n",(int)result);
}
}