題目描述
乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法(先後次序不同算不同的結果)。
**:
class
jump()
:def
jumptaijie
(self,n)
:if n ==0:
return
0elif n ==1:
return
1elif n ==2:
return
2else
:return jump(
).jumptaijie(n-1)
+jump(
).jumptaijie(n-2)
defjumpother
(self,n)
:if n ==0:
return
0elif n ==1:
return
1elif n ==2:
return
2else
: step1 =
1 step2 =
2 result =
0for i in
range(2
,n):
result = step1+step2
step1 = step2
step2 = result
return result
sum= jump(
).jumptaijie(4)
print
(sum
)print
(jump(
).jumpother(5)
)
知識點:迴圈、遞迴
分別寫了兩個函式,分別為遞迴呼叫和迴圈執行,遞迴一般複雜度上過不去,雖然自己也注重這個,迴圈執行試了下複雜度上ok。
對於這種型別的題目,不要憑空想,看題目並不會看懂,通過推算前面幾級的數值,找出它的規律並實現。
公升級版跳台階 python程式設計
題目 乙隻青蛙一次可以跳上1級台階,也可以跳上2級 它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法。解題思路 n個台階有f n 種跳法,即5個台階有f 5 種跳法。當n 0時,只有一種情況 不用跳 故f n 1 當n 1時,只有一種跳法,一次跳一階,故f n 1 當n 2時,有兩種跳法...
程式設計 青蛙跳台階
乙隻青蛙一次可以跳上1級台階,也可以跳上2 級 它也可以跳上n 級,此時該青蛙跳上乙個n級的台階總共有多少種跳法?下面我們有數學歸納法分析一下這個問題 用fib n 表示青蛙跳上n階台階的跳法數,青蛙一次性跳上n階台階的跳法數1 n階跳 設定fib 0 1 當n 1 時,只有一種跳法,即1階跳 fi...
《程式設計之法》 跳台階
乙個台階總共有n級,如果一次可以跳1級 2級 3級。求總共有多少種跳法。如果整個台階只有1級,則只有一種跳法 如果台階只有2級,則有兩種跳法 如果台階只有3級,則有四種跳法。推廣到一般情況,記f n 為n級台階的跳法。當n 3時,第一次跳1級還是2級還是3級,決定了後面剩下的台階的跳法數目的不同。如...