1. 程式人生 > >劍指offer:變態跳臺階

劍指offer:變態跳臺階

試題:

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

程式碼:

同理,從後往前想:

f(n) = f(n-1) + f(n-2) + f(n-3) .... + f(1) + f(0)

f(n-1) = f(n-2) + f(n-3) + .... + f(1) + f(0)

則:

f(n) = f(n-1) + f(n-1) = 2*f(n-1)

則:

f(n) = 2*f(n-1)

f(n-1) = 2*f(n-2)

f(n-2) = 2*f(n-3)

......

f(2) = 2*f(1)

共有n-2+1個2相乘。

注意:

f(1) = 1

f(0) = 1

public class Solution {
    public int JumpFloorII(int target) {
        int res = 1;
        return 1<<(target-1);
    }
}