题意:输入(n,m),求C(n,m)
解题见代码注释
题目链接:http://poj.org/problem?id=1306
#include<stdio.h>
#include<stdlib.h>
/*
公式:C(n,m)=n!/[m!(n-m)!]
A(n,m)=n(n-1)(n-2)...(n-m+1)=n!/(n-m)!
C(n,m)=A(n,m)/m=n(n-1)(n-2)...(n-m+1)/m!
*/
int main()
{
int n,m,j;
double sum,i;//注意i是double型
while(~scanf("%d %d",&n,&m)&&(n||m))
{
if(n<5||n>100||m<5||m>100||n<m)
break;
sum=1.0;
for(i=n,j=m;i>n-m;i--)
{
sum*=(i/j);
j--;
}
printf("%d things taken %d at a time is %0.lf exactly.\n",n,m,sum);
}
return 0;
}