题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
思路:.....解方程。。。。错了
剑指解法:还是斐波那契数列!!!
如果只有一级台阶,那么只有一种跳法,两级台阶,两种,一般情况下:把n级台阶跳法看成n的函数,当n>2时,第一次跳就有两种不同的选择,跳一级+后面剩下n-1级台阶的跳法;跳两级+后面剩下n-2级台阶的跳法;
# -*- coding:utf-8 -*-
class Solution:
def jumpFloor(self, number):
# write code here
if number<=0:
return 0
elif number==1:
return 1
I0 = 1
I1 = 1
F = 0
for i in range(2,number+1):
F = I0 + I1
I0 = I1
I1 = F
return F