编程笔试(解析及代码实现):斐波拉契数序列应用之跳台阶→变态跳台阶
目录
编程题目
斐波拉契数序列应用:跳台阶→变态跳台阶
(1)、一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
思路分析:
对于第n个台阶来说,从前一次台阶上,怎么能跳到此处?
前提是变化符合规律,仔想也是,没有规律怎么编写程序?
根据已知条件,可知只有两种方法
只能从n-1或者n-2的台阶跳上来,所以F(n) = F(n-1) + F(n-2)
恰好,符合斐波拉契数序列
实现代码
# -*- coding:utf-8 -*-
class Solution:
def jumpFloor(self, number):
# write code here
a,b = 1,1
for i in range(number):
f_next=a+b
a=b
b=f_next
#a,b = b,a+b #以上三行等价于本一行
return a
(2)