只用了一个超级笨的方法去做,莫见怪
#include<stdio.h>
int f(int m, int n);
int k(int m,int n);
int g(int m);
int main(void)
{
int m=1,n;
while(m!=0||n!=0)//0,0结束
{
scanf("%d%d",&m,&n);
printf("%d\n",f(m,n));
}
return 0;
}
int f(int m, int n)
{
if(m==0 || n==0) return 1;
return m>=n?k(n,m):k(m,n);
}
int k(int n,int m)//我直接用数学方法计算出来的,哈哈
int i,sum;
for(i=0,sum=0;i<n;i++)
sum+=g(n-1)*g(m+1)/(g(i)*g(n-1-i)*g(i+1)*g(m-i));
return sum;
}
int g(int m)//阶乘的算法
int sum;
if(m==0)
return 1;
for(sum=1;m>=1;m--)
sum*=m;
return sum;
}