爬樓梯問題

//一次只能爬1或2個臺階
//n個臺階有多少個爬法?
//第一步,我們可能走1個臺階,那麼剩下的就剩下了 f(n-1)中方法,或者第一步走兩個臺階,那麼那麼剩下的就剩下了 f(n-2)種方法,所以f(n)共有 f(n-1)+ f(n-2)中方法
//在寫出邊界條件,n=1或者n=0,就一種結果
//這個和Fibonacci

//先考慮第一步,在考慮第二步,第二步可能與第一部的解法思路相同,(範圍卻小了),然後一直分解。。。直到邊界有返回值

#include<iostream>
using namespace std;
int kinds(int n)
{
    if (n==1||n==0)//有多種邊界條件
    {
        return 1;
    }
    return kinds(n - 1) + kinds(n - 2);
}
int main()
{
    int n;
    cin >> n;
    cout<<kinds(n)<<endl;
    return 0;
}

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章