递归 递归 递归

什么是递归?

强烈推荐博客网的一篇博客,地址如下:
什么是递归?先了解什么是递归.
举个栗子:
你手中有一把钥匙,面前有一扇门,打开门之后发现门后面还有一扇门,紧接着你又用钥匙打开下一扇门,然后又发现还有一扇门……突然,当你打开一扇门后,门后不是一扇门,而是一张桌子,上面放着一部全新未激活的iPhone12 Pro MAX,你非常的开心,就沿着刚才打开过的门回到了最开始的地方。
上述的过程就是一个经典的递归。

怎么写递归?

说了这么多,怎么写递归呢,根据递归在百度百科的定义中,有这样一句话:一般来说,递归需要有边界条件递归前进段递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。我们结合上述的那个例子解释一下里面出现的名词,你有没有拿到那部iPhone12 Pro MAX就是递归的边界条件,而你在还没有拿到手机的时候,在不断的打开门前进,这就是递归的递归前进段,在你拿到手机之后,你沿着刚才打开过的门返回,这就是递归的递归返回段。要说那部iPhone12 Pro MAX是什么,我感觉更像是这个递归函数的返回值。
我想看到这里你应该对递归函数有了进一步的认识,递归函数要有一个边界条件,在递归前进段中,要不断的逼近那个边界条件,到达边界条件时,停止调用函数自身,进行一个其他操作(返回一个数值、打印一个数值等等)
总结——递归三要素
1. 寻找一个结束条件。当达到这个结束条件的时候,停止调用函数,直接返回结果
2. 不断缩小范围。结合所写函数寻找出一个比当前参数更逼近结束条件的参数与当前参数的关系,进而不断缩小范围。
3. 将这个关系写成代码
递归之所以比较难思考,我认为主要是要寻找边界条件和寻找关系,这两者寻找到以后,递归的问题就迎刃而解了。

什么时候用递归呢?

当我们发现一个规模大且复杂的问题可以通过层层转化为与原问题相似的相对规模小且简单的问题来求解的时候,就可以使用递归了。看到这里如果还不是太清楚的话,不用着急,可以多去做几道题,或结合问我下面说的去理解。

递归的例子

递归求解汉诺塔
汉诺塔

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值