天天看點

劍指offer-09-跳台階

題目描述

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

題目分析

青蛙隻跳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];..........................①

a[n-1] = a[n-2]+......+a[1];..........................②

兩式相減可知:a[n]=2*a[n-1];

純數字分析:f(1)=1;f(2)=2;f(3)=4;f(4)=8;f(5)=16;...可得f(n)=2^(n-1)

代碼

function jumpFloorII(number)
{
    // write code here
    //2的(n-1)次幂
    return 1<<(--number)
}                

轉載于:https://www.cnblogs.com/Shinea_SYR/p/9657125.html