用遞歸法計算從n個人中選擇k個人組成一個委員會的不同組合數


分析:

1、如果k>n,結果為0

2、k=n時,只有1組

3、k<n的時候,可以把解空間分為兩部分:假設其中一個人叫X,那么選X的解和不選X的解加起來就是總的解。不選X的話,那么在剩下的n-1個人中選k個。選X的話,在剩下的n-1個人中再選k-1個。

代碼:

#include<iostream>
using namespace std;
int fun(int n, int k){
    if (k == n||k==0){
        return 1;
    }
    if (k > n){
        return 0;
    }
    return fun(n - 1, k) + fun(n - 1, k - 1);
}
int main(){
    cout << "輸入兩個整數n和k:";
    int n, k;
    cin >> n >> k;
    cout << "C(n,k)=" << fun(n, k) << endl;
    return 0;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM