zoukankan      html  css  js  c++  java
  • 跳台阶

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

    首先我们考虑最简单的情况。

    如果只有1级台阶,那么显然只一种跳法。

    如果有2级台阶,那就有两种跳法:一种是分两次跳,每次跳1级;另一种是一次跳2级。

    f(n)=f(n-1)+f(n-2)

    也就是斐波那契数列

    #include <iostream>
    using namespace std;
    /*
    一只青蛙一次可以跳上1级台阶,也可以跳上2级。
    求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
    */
    // 实际上看着规律就是斐波那契数列
    // 1,2,3,5,8
    class Solution {
    public:
        int jumpFloor(int number) {
           if (number <= 0)
                return 0;
           else if(number <= 3)
            return number;
           int first = 1, second = 2, third = 0;
           for (int i = 3; i <=number; i++)
           {
               third = first + second;
               first = second;
               second = third;
           }
           return third;
        }
    
    };
    int main(void)
    {
        Solution s;
        cout <<s.jumpFloor(5);
        return 0;
    }
  • 相关阅读:
    macOS免费的NTFS读写软件
    Python模块和模块引用(一)
    Python Class (一)
    Ubuntu系统管理systemd
    Case Closed?
    The 'with' and 'as' Keywords
    Buffering Data
    rstrip
    堆排序
    堆 续9
  • 原文地址:https://www.cnblogs.com/xiaokang01/p/12456254.html
Copyright © 2011-2022 走看看