gpt4 book ai didi

c++ - 递归如何获取以前的值?

转载 作者:行者123 更新时间:2023-11-30 01:33:38 24 4
gpt4 key购买 nike

我在学习c++的基础中,遇到了一个我不明白的递归例子。该等式适用于斐波那契数列,如下所示:

int fibo(int f)
{
if (f < 3)
{
return 1;
}
else
{
return fibo(f - 2) + fibo(f - 1);
}
}

“else”语句是如何工作的?我知道它会将前两个数字相加以获得当前的斐波那契数,但是在没有任何先验信息的情况下它怎么知道从哪里开始呢?如果我想要第 7 个斐波那契数,它怎么知道第 6 个和第 5 个数是什么?

最佳答案

在这个给定的等式中,它会深入根。当您最初给出值 7 时,它将自行运行以获取 7-2 = 5 和 7-1=6 的值,但它仍然没有 5 和 6 的值。因此它将进一步将 5 的值减少到 3以及 4 和 6 到 5 和 4。最后,当 f 小于 3 时,它将返回值 1。在获得根值之后,它会将这些值相加以获得总答案。

关于c++ - 递归如何获取以前的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58174124/

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