注册 登录
编程论坛 C++教室

递归求N中选K的组合数,最后一行代码看不懂?

魔羊天邪座 发布于 2013-03-19 08:02, 435 次点击
#include <iostream>
using namespace std;
int main()
{
    int n,k;
    int comm(int n,int k);
    cin>>n>>k;
    cout<<comm(n,k)<<endl;
}
int comm(int n,int k)
{
    if(k>n)
        return 0;
    else if(n==k||k==0)
        return 1;
    else
        return comm(n-1,k)+comm(n-1,k-1);
}
2 回复
#2
rjsp2013-03-19 08:22
你问的这是纯数学问题,和C/C++无关
对于N个数中的某个数而言,只有“没被选中”和“被选中”两种可能
若“没被选中”,则就是求剩下的“N-1中选K的组合数”
若“被选中”,则就是求剩下的“N-1中选K-1的组合数”
#3
魔羊天邪座2013-03-19 08:29
回复 2楼 rjsp
谢谢你。
1