题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解题思路
1级台阶:1种跳法
2级台阶:2种跳法
3级台阶:3种跳法
4级台阶:5种跳法
。。。
即:台阶级数和跳法总数的关系满足斐波那契数列。
斐波那契数列:1,1,2,3,5,8,13,。。。
用求解斐波那契数列第n项的方式求解该题即可。
Python代码
def jumpFloor(self, number):
list = [1,1]
while number > 0:
list[0],list[1] = list[1],list[0]+list[1]
number -= 1
return list[0]
One More Thing
为什么青蛙跳台阶的跳法数量刚好满足斐波那契数列呢?
获取答案第一步:了解斐波那契数列的定义(图片引自知乎):

获取答案第二步:了解青蛙跳台阶的定义(图片引自博客):


获取答案::
斐波那契数列和青蛙跳台阶除初始条件略有差异,其通式完全一致。