蓝桥杯 代码填空 组合数 递归

来源:互联网 发布:奥美电子 知乎 编辑:程序博客网 时间:2024/06/05 05:32
从4个人中选2个人参加活动,一共有6种选法。


从n个人中选m个人参加活动,一共有多少种选法?下面的函数实现了这个功能。


请仔细分析代码,填写缺少的部分(下划线部分)。


注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
直接写在题面中不能得分。




// n 个元素中任取 m 个元素,有多少种取法
int f(int n, int m)
{
if(m>n) return 0;
if(m==0) _______________;


return f(n-1,m-1) + _____________;

}


实际上是考了组合数中的一个公式C(n,m)=C(n-1,m-1)+C(n-1,m),可以这样解释这个公式,我们把第m个人拿出来单独考虑,因为只有两种可能,m被选中或者没被选中,如果m被选中,那么只要从剩下的n-1个人中再选出m-1个人就行,如果m没被选中,就需要从n-1个人中选m个人,所以应该填入f(n-1,m),当m==0的时候,也就是C(n,0)自然等于1

0 0
原创粉丝点击