题目:
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶(n为正整数)总共有多少种跳法。
示例:
输入:3
返回:4
这道题和上一题有所不同,这次一次可以跳上n级台阶,所以我们不要被上一题固化,重新思考一下,简单列一下可能发生的情况:
我们惊喜的发现,这道问题可以由以下规律求解:
f(n)=f(n-1)+2^(n-2)
代码:
class Solution:
def jumpFloorII(self, number):
# write code here
if number<0:
return False
if number<=2:
return number
b=2
for i in range(3,number+1):
m=2**(i-2)
b=b+m
return b