剑指Offer 9. 变态跳台阶 (递归)

Posted on 2018-10-12 13:16  _hqc  阅读(156)  评论(0编辑  收藏  举报

题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

题目地址

https://www.nowcoder.com/practice/22243d016f6b47f2a6928b4313c85387?tpId=13&tqId=11162&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

思路

当n=1时,结果为1;

当n=2时,结果为2;

当n=3时,结果为4;

以此类推,我们使用数学归纳法不难发现,跳法f(n)=2^(n-1)。

Python

 

# -*- coding:utf-8 -*-
class Solution:
    def jumpFloorII(self, number):
        # write code here
        if number <= 2:
            return number
        return 2**(number-1)

if __name__ == '__main__':
    result = Solution().jumpFloorII(4)
    print(result)