这题真的是典型的组合数学啊,记得高中里刚上组合数学的时候就有这题,公式就是C(n,n+m),但是到了实现代码的时候就被坑了一把,因为是以0 0收尾,我就写了 while(scanf("%d%d",&n,&m)!=EOF&&n!=0),直接WA啊,我还以为哪里错了呢,直到我想起来是应该写n==0&&m==0,白白送了一个WA,理解错条件也是坑啊!
代码如下
#include<stdio.h>
#include<math.h>void main()
{
double sum;
unsigned n,m,a,b;
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n==0&&m==0)
break;
a=n+m;
b=n<m?n:m;
sum=1;
while(b>0)
sum*=1.0*a--/(b--);
printf("%.0f\n",sum);
}
}