題目:
乙隻青蛙一次可以跳上1級台階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法。
解題思路:
n個台階有f(n)種跳法,即5個台階有f(5)種跳法。
當n=0時,只有一種情況(不用跳),故f(n)=1
當n=1時,只有一種跳法,一次跳一階,故f(n)=1
當n=2時,有兩種跳法,可以一次跳兩階,也可以跳兩次一階,f(n)=2
當n=3時,第一次如果跳一階,剩下兩階的跳法有f(3-1);第一次如果跳兩階,剩下一階的跳法有f(3-2);如果第一次跳三階,那剩下的跳法有f(3-3)種跳法。
故f(3) = f(3-3)+f(3-2)+f(3-1) = f(0)+f(1)+f(2)
……以此類推,
f(n-1) = f(0) + f(1) + … +f((n-1)-1) = f(0) + f(1) + … +f(n-2)
f(n) = f(0) + f(1) + … + f(n-2) + f(n-1) = f(n-1) + f(n-1) = 2 f(n-1)
python程式設計如下:
# -*- coding:utf-8 -*-
class
solution
:def
jumpfloorii
(self, number)
:if number<=1:
return
1else
: a =
1for i in
range
(number-1)
: a *=
2return a
python程式設計 跳台階
題目描述 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 class jump def jumptaijie self,n if n 0 return 0elif n 1 return 1elif n 2 return 2else ...
跳台階(java版)
題目描述 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。解題思路 1.對於第n個台階來說,只能從n 1或者n 2的台階跳上來,所以f n f n 1 f n 2 2.斐波拉契數序列,初始條件 n 1 只能一種方法 n 2 兩種 遞迴一下就好了 3.當測試用...
Python3程式設計 數字反轉(公升級版)
給定乙個數,請將該數各個位上數字反轉得到乙個新數。這次與noip2011普及組第一題不同的是 這個數可以是小數,分數,百分數,整數。整數反轉是將所有數字對調 小數反轉是把整數部分的數反轉,再將小數部分的數反轉,不交換整數部分與小數部分 分數反轉是把分母的數反轉,再把分子的數反轉,不交換分子與分母 百...