zoukankan      html  css  js  c++  java
  • 计蒜客-题库-爬楼梯

    题目

    假设你现在正在爬楼梯,楼梯有 n级。每次你只能爬 1级或者 2级,那么你有多少种方法爬到楼梯的顶部?

    输入格式

    第一行输入一个整数 n(1≤n≤50),代表楼梯的级数。

    输出格式

    输出爬到楼梯顶部的方法总数。

    样例输入

    5

    样例输出

    8

    思路

    每次只能爬1或者2级,也就是说可以从前n-1、n-2两级任意一级到达n级,那么到达第n级的总数就是前两级的和,有点斐波拉契的意思

    代码

    #include<iostream>
    using namespace std;
    long long  num[51];
    long long solve(int n){
        if (n == 1){
            return 1;
        }
        if (n == 2){
            return 2;
        }
        if (num[n] != 0){
            return num[n];
        }
        return num[n]=solve(n - 1) + solve(n - 2);
    }
    int main(){
        int n;
        cin >> n;
        cout << solve(n) << endl;
        return 0;
    }

    使用数组num存储每一级的总数,避免重复计算导致的超时

  • 相关阅读:
    Go语言标准库flag基本使用
    GO学习-(12) Go语言基础之函数
    GO学习-(11) Go语言基础之map
    GO学习-(10) Go语言基础之指针
    Spring AOP
    JDK动态代理
    版本控制
    版本控制
    浅析Java反射机制
    Spring Batch学习
  • 原文地址:https://www.cnblogs.com/xiangguoguo/p/6776191.html
Copyright © 2011-2022 走看看