gpt4 book ai didi

algorithm - 快速斐波那契递归

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:17:41 24 4
gpt4 key购买 nike

我正在尝试记忆斐波那契递归的算法。以下内容:

public int fibonacci(int n)  {
if(n == 0)
return 0;
else if(n == 1)
return 1;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}

不是我正在寻找的东西,因为它很贪婪。这将呈指数增长(看看 Java recursive Fibonacci sequence - 初始参数越大,将进行越多无用的调用)。

可能存在类似于“循环参数移位”的东西,其中调用先前的斐波那契值将检索值而不是再次计算它。

最佳答案

可能是这样的:

int fib(int term, int val = 1, int prev = 0)
{
if(term == 0) return prev;
return fib(term - 1, val+prev, val);
}

这个函数是尾递归的。这意味着它可以非常有效地优化和执行。事实上,它被优化为一个简单的循环..

关于algorithm - 快速斐波那契递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13826810/

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