遞歸例題:放蘋果

#include <iostream>

using namespace std;

int setapple(int m,int n){//m個蘋果,n個盤子
    if(n==0){
        return 0;
    }
    if(m==0){
        return 1;
    }
    //必然會空的盤子就可以去掉
    if(n>m){
        return setapple(m,m);
    }
    else{
        //分為兩種情況,一種是有盤子為空的放法,即第二個表達式,先空出一個盤子,把問題簡單化
        //一種是沒有盤子為空的放法,即第一個表達式,先把每個盤子先放一個再說
        return setapple(m-n,n)+setapple(m,n-1);
    }
}

int main()
{
    int t,m,n;
    cin>>t;
    while(t--){
        cin>>m>>n;
        cout<<setapple(m,n)<<endl;
    }
    return 0;
}

這里利用分類分別遞歸的思想,通過分析題目可知,不能通過先走一步,減少問題規(guī)模,而是直接分成幾個大類,同時,注意規(guī)劃好邊界條件來終止遞歸。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • PMP第五版考點匯總沖刺版 第一章引論 P2:《PMI道德與專業(yè)行為規(guī)范》詳細描述從業(yè)者在責任、尊重、公正、誠實方...
    文小夢閱讀 23,680評論 5 102
  • 機器學習是做NLP和計算機視覺這類應用算法的基礎,雖然現(xiàn)在深度學習模型大行其道,但是懂一些傳統(tǒng)算法的原理和它們之間...
    在河之簡閱讀 20,899評論 4 65
  • 文/沛花仙子 上一篇《有多少愛可以重來1》 3. 陽陽和安寧海誓山盟,非你不嫁,非你不娶。 那時的安寧是真心的快樂...
    沐芷鯉閱讀 434評論 0 0
  • 30天的最美結(jié)束了,本來早就該做的總結(jié)一直拖到現(xiàn)在才做很是慚愧,也是該好好總結(jié)了,雖然自己每天都有寫作的任務但內(nèi)容...
    STAYPositive閱讀 437評論 0 0

友情鏈接更多精彩內(nèi)容