不是说递归更好理解吗 我怎么觉得递归一点都不好理解
答案:2 悬赏:60 手机版
解决时间 2021-02-24 16:06
- 提问者网友:佞臣
- 2021-02-24 08:07
我看网络上对递归的解释,是编程和理解起来更轻松,但是程序执行效率变低。但是我看来,稍微复杂一点的函数递归起来,我就想不明白,而且函数里重复递归的时候,我更搞不清楚到底怎么运行起来的。这哪里利于理解了? 难道是西方人的脑子和我的不一样?
最佳答案
- 五星知识达人网友:山君与见山
- 2021-02-24 09:36
可以将内部递归操作视作另一个方法就好理解了,比如
int DG(int data){
if(data<=0)return 0;//直接跳出,
data--;//执行体
return DG(data);//递归
}
最后这句可以视作另外一个方法,比如DG1,只不是过DG1的操作过程和返回结果类型与DG一样的而已
这里有一个跳出条件,就是data<=0;并且一定要放在前面,否则递归一直执行下去,直到出现异常
int DG(int data){
if(data<=0)return 0;//直接跳出,
data--;//执行体
return DG(data);//递归
}
最后这句可以视作另外一个方法,比如DG1,只不是过DG1的操作过程和返回结果类型与DG一样的而已
这里有一个跳出条件,就是data<=0;并且一定要放在前面,否则递归一直执行下去,直到出现异常
全部回答
- 1楼网友:duile
- 2021-02-24 10:46
1不算,假设是4时候
计算到4 + fn(3),
那么编译器会去计算fn(3),4会放一边
然后依次,3 + fn(2),3放一边
2 + fn(1) 2放一边
fn(1) = 1
然后逐步后退
2 + fn(1) = 2 + 1 = 3
3 + fn(2) = 3 + 3 = 6
4 + fn(3) = 4 + 6 = 10
得到结果
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯