从n个人中选择k个人的选法

来源:互联网 发布:淘宝买家秀的福利网盘 编辑:程序博客网 时间:2024/05/21 01:47

题目

从n个人中选选k个人组成一个委员会的不同组合数。

解答

分析

从n-1个人到n个人,增加一个人,这个人可能被选中,也可能不被选中。若第n个人被选中则是从n-1个人中选择k-1个人,若第n个人没被选中,则是从n-1个人中选择k个人。即得以下公式:
由n个人里选k个人的组合数= 由n-1个人里选k个人的组合数+由n-1个人里选k-1个人的组合数;

递归法得出推导公式:
F(n,0) = 1;
F(n,k=n)=1;
F(n,k) = F(n-1,k)+F(n-1,k-1)

代码

C++语言代码实现

int getKfromN(int n ,int k){    if(n<k){         return 0;    }else if(n==k || k==0){        return 1;    }else{        return getKfromN(n-1,k-1)+getKfromN(n-1,k);    }}
0 0
原创粉丝点击