python實現青蛙跳台階演算法

2021-09-25 02:52:33 字數 757 閱讀 2710

問題描述:

青蛙每次跳台階每次只能跳乙個台階或兩個台階,跳到第n個台階總共有多少種跳法

解決方法:

可以轉化為斐波那契數列的方式進行求解,假設要跳n階台階,那麼第一步有兩種跳法:

(1)跳一步,後面還有n-1個台階需要跳;

(2)跳兩步,後面還有n-2個台階需要跳。

可以看到跳n階台階的跳法數等於跳n-1和n-2階台階數的和,即f(n) = f(n-1) + f(n-2)

求解方式:

(1)遞迴,**很簡潔,但不推薦此方式,有大量的重複計算

def jumpsteps_digui(n):

if n in (1, 2):

return n

return jumpsteps_digui(n-1)+jumpsteps_digui(n-2)

(2)很簡單的從下往上計算,時間複雜度為0(n),通常軟體中採用這種寫法。

def jumpfloor_new(n):

if n in (1, 2):

return n

temp1, temp2 = 1, 2

while n > 2:

temp = temp1 + temp2

temp1, temp2 = temp2, temp

n -= 1

return temp

演算法 青蛙跳台階

1.乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。典型的斐波那契數列 2.青蛙跳台階plus版本 乙隻青蛙一次可以跳上1級台階,也可以跳上2級 它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法。關於本題,前提是n個台階會有一次n階的跳法。分析如...

青蛙跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。解題思路 1 如果兩種跳法,1階或者2階,那麼假定第一次跳的是一階,那麼剩下的是n 1個台階,跳法是f n 1 2 假定第一次跳的是2階,那麼剩下的是n 2個台階,跳法是f n 2 3 總跳法為 f n f n...

青蛙跳台階

之前面試遇到了這種題目,不會,後來搜尋了一下,感覺分析的很好 青蛙跳乙個n階的台階,每次可以跳1階或者2階,求跳完n階y有多少種方法。分析 n 1,f n 1 n 2,f n 2 n 3,f n 3 n 4,f n 5 可以發現 f n f n 1 f n 2 由此也可以推想 比如要跳到第4階樓梯上...