编程学习笔记5--递推的运用

本文探讨了递推在编程中的重要性,通过楼梯问题、斐波那契数列、门票排队问题和数字三角形等案例,阐述如何利用递推解决复杂问题。递归作为递推的一种形式,虽然可能导致效率较低,但其简洁性和易读性在某些情况下优于循环。递归特别适用于那些难以用通项公式表达或解算方程困难的问题。
摘要由CSDN通过智能技术生成

递推是常用的办法,过去印象深刻的比如求n的阶乘,把一个数字逐位输出,汉诺塔实验都是递归的运用案例。递归是递推的一种特殊方式。

递归最重要的是找到结束条件,还有上层关系和下层之间的递推关系,尤其对于某些无法写出通项公式的题目,或者很难写出通项公式的题目,使用递归可以使代码变的简洁,易懂,比如二叉树的遍历中,微笑递归输出明显比非递归容易理解的多,斐波那契数列,通项函数的计算需要解差分方程快哭了,很麻烦。用递归也是不错的办法,所有的递归都是

可以用循环实现的,但是递归的效率比较低。

楼梯问题

/**求有20级楼梯,每步可以跨一级也可以跨二级,走到第20级共有多少种走法?*/

分析:
20级的楼梯太多,逐一列举不可能,可以试着减少楼梯数目,从1开始,逐一列举,
回发现其实就是斐波那契数列。

比如走10阶楼梯,第一次有两种走法。

如果第一次走了两个,那么剩下的就是8个
如果第一次走了一个,那么剩下的就是9个

走10个楼梯的方法就是走9个楼梯和8个楼梯的和

如果再加上一次可以走3个阶梯,下面是办法,同样是递推累加
#include <stdio.h>
int main( )
{    int x,n,i,a,b,c;
	scanf("%d",
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值