http://acm.hit.edu.cn/hoj/problem/view?id=1446
计算组合数
#include <stdio.h>
double Binomial(int n, int k);
int main()
{
int n, k;
double res;
while (scanf("%d %d", &n, &k) != EOF)
{
if (n == 0 && k == 0)
break;
res = Binomial(n, k);
printf("%.0lf\n", res);
}
return 0;
}
double Binomial(int n, int k)
{
double p1, p2;
p1 = p2 = 1;
if (k > n/2)
k = n-k;
while(k)
{
p2 *= n;
p1 *= k;
n--;
k--;
}
return p2/p1;
}