美文网首页
【前端】剑指offer题解每日一更

【前端】剑指offer题解每日一更

作者: 玉面小猿 | 来源:发表于2018-07-30 22:45 被阅读0次

    题目

    一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法
    思路
    先按照排列组合原理写出n个台阶的跳法

    n 可得到的跳台阶方法
    0 0
    1 1
    2 2
    3 4
    4 8
    5 16

    解法

    #include <iostream>
    #include <string>
    #include <algorithm>
    //变态青蛙跳台阶
    using namespace std;
    class Solution {
    public:
        int jumpFloorII(int number) {
            int sum = 0;  //定义输出总和
            int arr[1001] = { 1,1,2 }; 
            //初始化最初的三个数,作为基数
    //对于1 1 2 进行特殊处理
            if (number <= 2) { return arr[number]; }
            else {
    //对于当前的数字来说,需要加上它之前的所有数字
                for (int i = 3; i <= number; i++) {
                    for (int j = 0; j <= i; j++)
    //加上第0 1 2 3个数字
                        arr[i] += arr[i - j];
                }
                return arr[number];
            }
        }
    };
    
    int  main() {
        int n;
        cin >> n;
    //定义一个接口
        Solution Fbnc;
    //拿到实现的成员函数的值
        int result = Fbnc.jumpFloorII(n);
        cout << result;
        system("pause");
    }

    相关文章

      网友评论

          本文标题:【前端】剑指offer题解每日一更

          本文链接:https://www.haomeiwen.com/subject/llvqvftx.html