【劍指offer】9:變態跳臺階

題目描述:spa

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

解題思路:blog

先考慮最簡單狀況就是隻有一級臺階,僅有一種跳法。兩級臺階,有兩種跳法(1+1和2)。三級臺階,有四種跳法(1+1+1,2+1,1+2,3)……遞歸

用表格來展現能夠方便你們觀看:ip

  臺階數    跳法 數量
         1 1 1
         2 1+1,2 2
         3 1+1+1,2+1,1+2,3 4
        ... ... ...
         n   2^(n - 1)

根據表格能夠總結爲f(n) = 2*f(n -1),是一個很是明顯的遞歸公式,一樣,爲了效率問題,能夠採用循環方式解決it

代碼實現io

(C實現):table

int jumpFloorII(int number ) {
    // write code here
    int res = 1;
    if (number <= 0 || number == 1) return number;
for (int i = 2; i <= number; i++) { res = res * 2; } //res = jumpFloorII(number - 1) * 2 遞歸代碼 return res; }

(JavaScript實現):function

function jumpFloorII(number)
{
    // write code here
    var res = 1;
    if (number <= 0 || number == 1) {
        return number;
    }
for (var i = 2; i <= number; i++) { res = res * 2; } //res = jumpFloorII(number - 1) * 2; 遞歸代碼 return res; }
相關文章
相關標籤/搜索