劍指offer 跳台階(迴圈和遞迴)

2021-07-03 13:07:58 字數 517 閱讀 7609

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

分析:考慮1個台階,只有1跳法,則 f(1) = 1

考慮2個台階,可以1級級條,可以一次跳2級,有兩種跳法,則f(2) = 2

考慮3個台階,它可以由1級跳來得到,也可以由2級跳來得到,所以它的跳法為 f(3-1) + f(3-2) = f(1) + f(2)

考慮n個台階,它的跳法為 f(n-1) + f(n-2)

實則上為斐波那契數列。可以用遞迴,也可以用迴圈方法求解。

**:int jumpfloor(int number) {

int fn;

int f1 = 1, f2 = 2;

if(number<0) return 0;

if(number == 1) return f1;

if(number == 2) return f2;

int count = 3;

fn = f1 + f2;

while(count

劍指offer 遞迴 跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。首先我們考慮最簡單的情況。如果只有1級台階,那麼顯然只一種跳法。如果有2級台階,那就有兩種跳法 一種是分兩次跳,每次跳1級 另一種是一次跳2級。接著,我們來討論一般情況。我們把n級台階時的跳法看成是n的函式,記...

劍指offer 跳台階

跳台階1 題目 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。思路 遞迴思想 可以理解為前面m步的情況加上最後一步的情況,前面m步理解為,m 1步加上最後一步的情況。最後一步分為2中情況,上1級和上2級。如下 class solution 跳台階2 題目 ...

劍指Offer 跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 解析 當青蛙到到n級時,有兩種跳法,一種是從n 1級跳1級,還有種是n 2跳2級 f n f n 1 f n 2 大家對這個公式是不是很熟悉,對,是斐波那契數列。所以這是一道動態規劃的問題。斐波那契數列,只能上...