我正在考虑找到第n个Fibonacci数的问题,我看到了各种解决方案,例如递归,动态编程,黄金比例等等。我想知道是不是按顺序计算第n个斐波纳契数是一个比这些更好的解?我错过了什么吗?
无论是递归编程还是动态编程,我们都必须遍历从Fibonacci系列中的第一个元素到第n个元素的路径。如果我们使用黄金比例,它的时间复杂度呈指数级增长。相反,如果我们迭代计算第n个Fibonacci数,我们可以在O(n)运算中实现这一点,这似乎比其他方法更好。
用递归解计算第n个斐波纳契数:
function fibonacci(num) {
if (num <= 1) return 1;
return fibonacci(num - 1) + fibonacci(num - 2);
}
另请参阅参考站点click here
我希望你得到你的答案