执行此功能时打印的内容是什么?

时间:2017-02-23 20:12:35

标签: computer-science

我在CS训练测试中遇到了一些练习题。你能解释一下如何找到正确的答案吗?

我不确定这是什么编程语言,但我尝试将这些问题转换为python来理解这些意思。 enter image description here

这是我在python中尝试解决这个问题,但似乎我没有得到正确的代码,因为我没有得到这些值。 enter image description here

1 个答案:

答案 0 :(得分:0)

你写了

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并完成。