牛客66題(8)跳臺階
阿新 • • 發佈:2018-11-24
一隻青蛙一次可以跳上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; } } };