1. 程式人生 > >劍指offer-09-跳臺階

劍指offer-09-跳臺階

n-1 HERE pre cti asc 斐波那契 code java return

題目描述

一只青蛙一次可以跳上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)
}

劍指offer-09-跳臺階