每个递归函数调用后的输出是什么?
19日视图(30天)
显示旧的评论
考虑下面的代码:
函数[出]= myRecurfn (num)
如果
地板(num) = = 0
= 2
其他的
= 4 + myRecurfn (num-1)
结束
结束
上面的函数被调用时myRecurfn(3.5),输出变量的值是什么?展示你的作品,通过展示什么是“出”为每个调用的函数,然后最终值是如何达到的。
自出的价值只是给地板(num) = = 0时(即num = 0.5)这是否意味着所有调用的输出,就是:= 4 + myRecurfn(3.5 - 1),从= myRecurfn(2.5 - 1),从= myRecurfn(1.5 - 1),然后第一个输出是= 2 ?我困惑是什么意思一个函数调用在这种情况下,或为每个调用的输出应该是什么样子。
接受的答案
Stephen23
2023年5月8日点23
“我困惑是什么意思一个函数调用在这种情况下,“
每次函数调用一个函数被调用。通常函数调用一个用户,例如当你写
sin(π)
罪在命令行调用函数。在一个递归函数,函数调用本身(但意义并没有改变)。每次评估这条线:
= 4 + myRecurfn (num-1)
函数被调用时……和理论上可能有一个输出(4添加)。作业要求每个输出的值。使用DISP显示函数输出。
myRecurfn (3.5);
这些输出值对应于输入值为0.5,1.5,2.5和3.5。为什么他们的顺序?:考虑当输出值定义:在第一个电话(你的用户)是产值已经计算?不,一个实际的数量只能存在在所有的递归调用完成……同样其他调用使用了最深的一个。最深的函数调用最终输出值,添加四个,然后可以回到它的调用函数(恰好是本身)……等。
函数[出]= myRecurfn (num)
如果地板(num) = = 0
= 2;
其他的
= 4 + myRecurfn (num-1);
结束
disp(出)%显示函数的输出
结束