永发信息网

不是说递归更好理解吗 我怎么觉得递归一点都不好理解

答案: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;并且一定要放在前面,否则递归一直执行下去,直到出现异常
全部回答
  • 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

得到结果

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯