gpt4 book ai didi

C++ 递归 Febonacci 函数

转载 作者:太空宇宙 更新时间:2023-11-04 16:18:11 24 4
gpt4 key购买 nike

下面是我的代码。我试图 [在最后] 打印 Fibonacci 递归函数,但它给了我段错误。我的代码有什么问题?我在这上面花了大约 3 个小时,但无法弄清楚。有人可以给我一些帮助吗?谢谢

int fibonacci (int x) {


if (x == 0) {
return 0;
}
else if (x == 1) {
return 1;
}
else {
return (fibonacci(x-1) + fibonacci (x + 2));
}
}

最佳答案

您遇到段错误很可能是因为您的堆栈不受控制地增长,这是因为这一行:

    return (fibonacci(x-1) + fibonacci (x + 2));

使用大于原始值的值调用 fibonacci() 会导致永远不会达到非递归情况,从而导致堆栈最终溢出或尝试这样做,因为 SO 会检测到这一点并终止您的进程。

因此,将该行重写为:

    return (fibonacci(x-1) + fibonacci (x - 2));

关于C++ 递归 Febonacci 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20179081/

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