剑指Offer(九)
变态跳台阶
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解题思路:
青蛙最后一步可以跳1到n的任意值,因此f(n)=f(n-1)+...+f(1)+f(0),f(n-1)=f(n-2)+...+f(1)+f(0),两式相减可以得到:f(n)=2*f(n-1),即为一个等比数列,等比数列求和即可,f(n)=2^(n-1)。
代码如下:
# -*- coding:utf-8 -*-
class Solution:
def jumpFloorII(self, number):
return 2**(number-1)
# write code here