题目描述
一只青蛙一次可以跳上 1 级台阶, 也可以跳上 2 级...... 它也可以跳上 n 级. 求该青蛙跳上一个 n 级的台阶总共有多少种跳法.
- class Solution:
- """
- f(0) = 1
- f(1) = 1
- ...
- f(n-1) = f(n-2) + f(n-3) + ... + f(1) + f(0)
- f(n) = f(n-1) + f(n-2) + f(n-3) + ... + f(1) + f(0)
- = f(n-1) + f(n-1)
- = 2 * f(n-1)
- f(n) = 2^(n-1), n>= 1
- """
- def jumpFloorRecursive(self, number):
- if number <= 0:
- return -1
- if number == 1:
- return 1
- return 2 * self.jumpFloorRecursive(number - 1)
- def jumpFloorInduction(self, number):
- return 1 << (number - 1)
- solution = Solution()
- print(solution.jumpFloorInduction(100))
来源: http://www.bubuko.com/infodetail-3026152.html