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

2018-07-30  本文已影响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");
}
上一篇下一篇

猜你喜欢

热点阅读