變態跳臺階

題目描述:

一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。

解題思路:

繼跳臺階之後,變態跳臺階隆重登場,還是上面的那種遞推,但是這次的遞推是f(n)=f(n-1)+f(n-2)+f(n-3)+…+f(1)+1;爲什麼加1呢,那是因爲前面的n-1項代表的是第一次跳i個臺階,會有多少種情況,而最後一項是一次性跳n個臺階,只有一種情況。

C++代碼:

class Solution {
public:
    int jumpFloorII(int number) {
        int sum=0;
        if(number <= 0)
            return 0;
        else if(number==1||number==2)
            return number;
        else{
            for(int i=1;i<number;i++)
            {
                sum+=jumpFloorII(number-i);
            }
            sum+=1;
            return sum;
        }
                
    }
};


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