美文网首页
递归问题:上台~阶

递归问题:上台~阶

作者: 见习炼丹师 | 来源:发表于2017-11-01 22:40 被阅读0次

只能一次上一层或两层台阶,输入台阶数,输出方法数

#include <iostream>

using namespace std;

int stairs(int n){
    //终止递归的条件
    if(n==0){
        return 1;
    }
    else if(n<0){
        return 0;
    }
    else{
        return stairs(n-1)+stairs(n-2);//第一次走一级台阶+第一次走两级台阶
    }
}

int main()
{
    int n;
    while(cin>>n){
        cout<<stairs(n)<<endl;
    }
    return 0;
}

敲黑板
运用递归可以一步步的将复杂问题转化为简单一层的问题,比如这道题就将一次上台阶的过程分成两种情况,第一种是第一次跨一个台阶,第二种是第一次跨两个台阶。所以上一次台阶f(x)=f(x-1)+f(x-2),这样不断递归下去。但是,仅仅这样是不能解决问题的,会变成无限递归,所以必须要为递归设立边界条件,即什么时候终止递归,开始计算,这样才能解决问题。

相关文章

  • 递归问题:上台~阶

    只能一次上一层或两层台阶,输入台阶数,输出方法数 敲黑板运用递归可以一步步的将复杂问题转化为简单一层的问题,比如这...

  • 算法小节(一)

    二分法 乘阶 递归乘阶 N台阶,1个台阶,2个台阶,一共有几种上台阶方式 冒泡 快排

  • 上台阶问题-递归和动态规划

    上台阶是一个常见的问题,解法主要有递归和利用动态规划,这篇文章简单介绍下递归解法和动态规划,以及对应的代码。递归解...

  • 上台阶问题

    上台阶问题 有n阶台阶(n>0),小明一次可以上一步,或者两步,请问小明有多少种上台阶的方案? 设小明有种上台阶方...

  • 算法:10阶层楼梯,每次只能走一阶或两阶,问有多少种走法?

    问题:10阶层楼梯,每次只能走一阶或两阶,问有多少种走法? 递归法 设F(n)是爬到n阶层的走法数,那么F(10)...

  • 递归算法:上台阶算法

    1、环境配置: 系统:win10 编程语言:C++ 编译器:DevC++ 2、算法思想: 问题:上台阶问题就是每次...

  • LeetCode-N Queens

    N皇后问题。经典回溯问题: 以下是递归及非递归的方法:

  • 递归问题

    递归是让我糊涂的问题之一,快变成我的疑难杂症了。 下面我用一到面试题来刺激我吧,以后看到的时候就想优化了 /* *...

  • 递归问题

  • 递归问题

    买汽水 转载地址[https://blog.csdn.net/qq_34399639/article/detail...

网友评论

      本文标题:递归问题:上台~阶

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