第10題:變態跳臺階

根據上一個題目:青蛙只跳1或2可以得出是一個斐波那契問題,即a[n]=a[n-1]+a[n-2],那麼能跳1,2,3個臺階時a[n]=a[n-1]+a[n-2]+a[n-3]…依次類推,能推出本題的a[n]=a[n-1]+a[n-2]+…+a[1]

所以f(n)=f(n-1)+f(n-2)+…+f(1)
因爲f(n-1)=f(n-2)+f(n-3)+…+f(1)
兩式相減得到:f(n)=2*f(n-1)


public class Solution {
    public int JumpFloorII(int number) {
        int f=1,fn=1;
        for(int i=2;i<=number;i++){
            fn=2*f;
            f=fn;
        }
        return fn;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章