gpt4 book ai didi

recursion - 递归如何返回?

转载 作者:行者123 更新时间:2023-12-01 23:50:20 25 4
gpt4 key购买 nike

我正在努力更深入地理解递归,并且我正在努力解决为什么它会以这种方式工作。我知道这个函数返回前一个返回的平方(2、4、16、256 等),但我想知道它是如何得到答案的。

我对递归的理解是它迭代回到基本情况,但这让我相信它最终总是会返回基本情况。它是如何恢复到每次都返回新内容的?

int p1a(int num) {
if (num == 1) { return 2; }
else {
return pow(p1a(num-1), 2);
}
}

这是我的想法的一个例子

num = 3
passes through the base case and hits pow(p1a(num-1), 2)
moves back to the start
again passes through the base case and hits pow(p1a(num-1), 2)
at this point, num = 1, so it would return 2

它是如何返回 16 的?我了解该函数返回的内容,但我一直坚持到达那里的过程。

最佳答案

您正在考虑线性的步骤,而执行实际上是嵌套的(由缩进表示):

call p1a(3)
call p1a(2)
call p1a(1)
return 2
return pow(2, 2)
return pow(4, 2)

所以最后的 return 返回值 16。

关于recursion - 递归如何返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26896326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com