只用了一个超级笨的方法去做,莫见怪
#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;
}