我有一些CS训练测试的练习题。你能解释如何得到正确答案吗?执行此功能时打印什么?
我不确定这是什么编程语言,但我尝试将这些问题转换为python来理解这些意思。 enter image description here
这里是我在python中的尝试来解决这个问题,但似乎没有得到正确的代码,因为我没有得到值。 enter image description here
我有一些CS训练测试的练习题。你能解释如何得到正确答案吗?执行此功能时打印什么?
我不确定这是什么编程语言,但我尝试将这些问题转换为python来理解这些意思。 enter image description here
这里是我在python中的尝试来解决这个问题,但似乎没有得到正确的代码,因为我没有得到值。 enter image description here
你写
if n >= 0:
,你应该写
if n >= 4:
而且,这里的关键是函数递归调用本身。取而代之的
return n/2
你只需要
f(n/2)
否则,你return
打印,这是不是原来的代码做什么之前。
最后,演练。所以你从f(16)
开始,并且由于16大于4,它调用f(16/2)
,并且在内部,由于8大于4,所以叫f(8/2)
,而且很细,因为4大于或者等于 4,最后一次它调用f(4/2)
,在此期间它终于获得有史以来的第一个print
声明,打印2
,然后回到父函数,打印4
等等,直到它打印16
并完成。
好的,谢谢。现在python只打印2.0有没有办法让python打印函数中的所有值?(2,4,8,16) – julian
您应该在问题中包含所有相关文本。你不应该喜欢包含代码的图像。 –
这看起来像_你能为我做我的作业_有点问题,我们不在这里为你工作。如果你需要帮助解决问题,请说明你的问题和你的尝试。如果你可以添加一些代码。它比形象更容易。 – Nicolas