一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
只考虑最后一步时候,距离n级台阶1级时候有f(n-1)种方法,2级时候有f(n-2)种方法.........。所以可以得到f(n) = f(n-1)+f(n-2)+....+f(1)+1。得到f(n) = 2*f(n-1),也就是得到f(n) = 2^(n-1)
# -*- coding:utf-8 -*-
class Solution:
def jumpFloorII(self, number):
# write code here
if number <= 2:
return number
total = 1
for _ in range(1, number):
total *= 2
return total