1. 程式人生 > >牛客66題(8)跳臺階

牛客66題(8)跳臺階

一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。

假設有1階有1種方法;

假設有2階有2種方法;

假設有3階有(2,1),(1,2),(1,1,1)3種方法;

假設有4階(1,1,1,1)(2,1,1)(1,2,1)(1,1,2)(2,2)5種方法:

假設有n階,要求解方法F(n),最後結束的方式有兩種,1種是跳兩階到頂,2種是跳1階到頂,此時問跳兩階到頂有多少種方法呢?顯然是F(n-2);那麼最後跳一階到頂的方法為F(n-1),於是就有F(n)=F(n-1)+F(n-2)。 

class Solution {
public:
    int jumpFloor(int number) {
        if(number==1)
        {
            return 1;
        }
        else{
            int sum=0,m=0,x=1;
            for(int i=1;i<=number;i++)
            {
                sum=m+x;
                m=x;
                x=sum;
            }return sum;
        }
        
        
    }
};