《剑指offer》 跳台阶

本题来自《剑指offer》 跳台阶

题目1:

  一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

思路:

  同上一篇。

C++ Code:

class Solution {
public:
    int jumpFloor(int number) {
        int one = 0;
        int two = 1;
        int floor = 0;
        for (unsigned int i =1;i<=number;i++){
            floor = one + two;
            one = two;
            two = floor;
        }
        return floor;
    }
};

Python Code:

# -*- coding:utf-8 -*-
class Solution:
    def jumpFloor(self, number):
        # write code here
        one = 1
        two = 1
        for i in range(number):
            one,two = two,one+two
        return one

题目2:变态跳台阶

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

思路:

  归纳总结共有2的n-1次方种跳法,所以直接返回数学表达式。

Python code:

# -*- coding:utf-8 -*-
class Solution:
    def jumpFloorII(self, number):
        # write code here
        floor = 1
        for i in range(number-1):
            floor *= 2
        return floor

 

posted @ 2019-04-24 14:49  weilongyitian  阅读(126)  评论(0编辑  收藏  举报