C++之用递归函数实现爬n阶楼梯

本文探讨了使用递归函数解决爬n阶楼梯问题,该问题与斐波那契数列相似。作者通过分析指出,当n阶楼梯时,爬法为f(n) = f(n-1) + f(n-2)。在实现过程中,作者遇到了同样的递归函数在不同问题中出错的情况,经过对比和检查,最终解决了问题,深化了对递归的理解,并感到编程的乐趣。
摘要由CSDN通过智能技术生成

问题是这样的:假设有n阶楼梯,人爬上去的话一次只能爬一阶或两阶楼梯,问n阶楼梯有几种爬法。(据说是爱因斯坦没事的时候想的问题,你说这些个伟人,自己平常钻研的东西那么难,像我这种人一个公式都要理解很久,偏偏还没事瞎琢磨,留问题来为难我真是好难过)。

好的,如题所说,要使用递归函数,那么首先我们得把递归函数的表达式写出来。分析如下:当n = 1时,只用一种爬法,即 f = 1 ;当n = 2时,可以一次一个台阶爬上去,也可以一次爬俩台阶,所以 f = 2; n = 3时,1)一阶一阶爬上去;2)先爬俩在爬一;3)先爬一再爬俩,即f = 3......当 n = n时,我们不妨这样想,他要爬n阶要不是从n - 1阶爬过来的要不然就是从n - 2阶爬过来的,即有f(n) = f(n-1) + f(n-2)。

到这里,很明显就是一个斐波那契函数,实现也就很简单了,而在写下这个问题的代码之前我已经实现了斐波那契函数,明明一样的实现我在写下该问题相关的代码时却死活实现不了,我还把两个代码放一起对比都没有发现错误,浪费了很多时间。以下分别为两个问题的代码:

1:斐波那契数列:


                
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值