[求助]如何理解过程的返回路径?
scratch吧
全部回复
仅看楼主
level 4
wjn2644 楼主
初学递归,其它的都能理解,就是这张图下面的返回路径不明白是什么意思,请各位不吝赐教!
2018年08月10日 01点08分 1
level 11
这是一个递归吧
2018年08月10日 01点08分 2
流程图尖的是判断,方块是执行语句,这个程序会递归调用自身,直到后面的参数≤0
2018年08月10日 01点08分
%%%tql
2018年08月13日 14点08分
@Mr_Wu0603 我是###,you very%%%,不管在α还是LG!!!
2018年08月13日 16点08分
@three♬ 您吊打集训队啊!
2018年08月14日 04点08分
level 4
wjn2644 楼主
编程语言的返回值我能理解,但这个递归过程最后的“返回”,以及下面虚线标示的“返回路径”,我没看明白,谁能解释一下这里面的含义,谢谢!
2018年08月10日 02点08分 3
level 10
其实递归时A函数是没有停下来的。只是在等它引发的B函数完成。同理B函数引发了C函数等C函数结束,C函数又引发D函数并且等待。最后D函数判断为 false 并且D函数执行结束,D函数就“告诉” C函数自己完成了任务。于是C函数也完成任务B函数继续,最终回到A函数。最后结束这个程序。
这个 “返回” 和 “返回值” 没有半毛的关系!
2018年08月10日 02点08分 4
A函数引发B函数时A函数会停滞直到B函数结束。(希望可以帮到你!)
2018年08月10日 02点08分
@射手joshua2006 十分感谢您,这么一解释,我就明白了!
2018年08月10日 03点08分
@wjn2644 所以递归效率比递推低很多
2018年08月13日 07点08分
@钱芃达 不能这么说。不够同时引发太多函数CPU可能会吃不消。这是递归最大的弱点。
2018年08月13日 08点08分
level 12
c++思路水平
2018年08月12日 19点08分 5
level 9
递归停止不放在最上面,难受。[不高兴]
就是说3--进入下一次递归说2--进入下一次递归说1--进入下一次递归说0--回退到上一次递归即说完1之后,没有程序--回退到上一次递归即说完2之后,没有程序--回退到上一次递归即说完3之后,没有程序--递归结束。
2018年08月13日 01点08分 6
“返回值”是指的c或者c++的return 0; scratch没有返回值,但是“返回”即“回退”现象还是会有的。
2018年08月13日 01点08分
level 8
准确的说是:
输入3
分支1展开:3->2->1->0
分支2展开:2->1->0
分支3展开:1->0
分支3返回:1<-0
分支2返回:2<-1<-0
分支1返回:3<-2<-1<-0
得到结果
2018年08月13日 12点08分 8
2018年08月13日 12点08分
2018年08月13日 13点08分
1