每个递归函数调用后的输出是什么?

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 ?我困惑是什么意思一个函数调用在这种情况下,或为每个调用的输出应该是什么样子。
1评论
乔纳斯
乔纳斯 2023年5月8日在26
你是在正确的方式,但是 地板() 并不意味着 1 为你写的。3.5地板是3,而不是2.5。
地板上 calcultes最近的小整数输入如果输入的已经不是整数
3.5 - > 3
2 - > 2
-1.5 - > 2
等等

登录置评。

接受的答案

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

更多的答案(0)

标签

s manbetx 845


释放

R2023a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的