递归(learning record)

本文详细记录了递归函数getSum的执行步骤,通过逐步展开递归调用来解释为什么5+getSum(4)的结果是15。作者通过挂起和回溯的方式,展示了递归如何计算阶乘式的数值。通过对每个递归层级的分析,帮助读者理解递归的工作原理。
摘要由CSDN通过智能技术生成

 有点乱,仅作记录用.[递归的执行有点让我不明所以,所以参考了下面的地址内容写下自己的理解]

(1) getSum(5)传入的 x 值为 5 .

(2) 5 传入后执行第二个 return 结果是: 5 + getSum(4);[这个结果挂起,先不执行]

代码先不计算,执行getSum(4); 结果是: 4 + getSum(3);[挂起];执行 getSum(3);结果是: 3 + getSum(2);[挂起];执行getSum(2);结果是: 2 + getSum(1);[挂起];执行getSum(1);这个时候执行第一个return,返回的结果是 1;这个时候挂起的才开始输出:2 + getSum(1)为 2 + 1;3 + getSum(2);为3 + 2 + 1;4 + getSum(3);为4 + 3 + 2 + 1;5 + getSum(4);为5 + 4 + 3 + 2 + 1;最终结果 15;[也就是开始执行挂起的那个值].

(3) 我开始看链接的内容时不能理解5 + getSum(4);为什么就是5 + 4 + 3 + 2 + 1了?我目前的理解就是5不变,然后执行getSum(4)[结果是: 4 + getSum(3);],所以5 + 4加的4应该就是getSum(4)结果里前面不变的那个4,一直这样走下去.这样理解的话就知道为什么是5 + 4 + 3 + 2 + 1了.

(4) 理解可能有误,仅作记录用.

参考地址:https://www.cnblogs.com/jane-panyiyun/p/12185899.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值