剑指offer跳台阶python
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)
思路
斐波那契数列的翻版,跳到第n级可以从n-1级跳1步或者从n-2级台阶跳2步。所以第n级台阶的跳法就是第n-1级的跳法+第n-2级的跳法。也就是斐波那契数列第n项等于第n-1项和n-2项的和。
代码
1 # -*- coding:utf-8 -*- 2 class Solution: 3 def jumpFloor(self, number): 4 # write code here 5 ans = [1,1,2,3] 6 while len(ans) <= number: 7 ans.append(ans[-1]+ ans[-2]) 8 return ans[number]