从前有座山,山里有座庙:递归之法

本文深入探讨了递归的概念,包括递归调用的定义、递归的两个关键组成部分——递推和回归,以及确保递归终止的必要条件——递归基。以阶乘函数为例,详细阐述了递归的应用,展示了如何通过递归解决数学问题。理解递归对于编程和算法设计至关重要。
摘要由CSDN通过智能技术生成

递归描述

递归调用是函数内部调用自身的过程,递归必须要有结束条件,否则会进入无限递归状态。无法停止。 我们称这个条件为(递归基)

递归原理

递归包括(递推)和(回归),递推是指将原问题不断分解为子问题,直到达到结束条件,返回最近子问题的解;然后逆向逐一回归,最终到达递推开始的原问题,返回原问题的解。

要素提取:

  1. 原问题是否可以分解为层级的子问题。
  2. 每个子问题的求解方式是否与原问题处理方式相似。
  3. 整个框架是否存在明确的递归基,即结束条件。

递归案例:阶乘

int factorial(int n) {

	//递归基(递归结束条件,此条件为递归中必须要有的)
	if (n == 1 || n == 0) return 1;
    //return 为回归阶段; n * factorial(n - 1)为递推阶段;
	return n * factorial(n - 1);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

༄yi笑奈何

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值