C语言递归问题 m个A n个B全排列 求详细解释!

题目:m个A,n个B,求其全排列,要求空白出只能填一条语句。
int f(int m,int n)
{if(m==0||n==0)return 0;
return____________;

该题答案:f(m-1,n)+f(m,n-1)

求高手解释!

int f(int m,int n)
{if(m==0||n==0)return 1; // 这里是1才对啊
return____________;

假设m==0或者n==0的时候, 全排列只有1种
当m和n都不是0的时候
第一个位置可以是A, 也可以是B
当第一个位置是A的时候, 后面剩下的排列方式就剩下m-1个A和n个B
当第一个位置是B的时候, 后面剩下的排列方式就剩下m个A和n-1个B
所以总的数目是上面两种情况的和
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-11
有性质:Cmn+1 = Cmn + Cm-1n

参考资料:http://wy19880318.blog.163.com/blog/static/3615147220090385546818/

相似回答