努力想办法解决这个问题。问题是使用javascript寻找n个复杂度为O(n)的Fibonacci数。在
我发现了很多伟大的文章如何用C++或Python来解决这个问题,但是每次我试图实现相同的逻辑时,我都会陷入一个^ {CD1>}。在
Python中的示例代码MAX = 1000
# Create an array for memoization
f = [0] * MAX
# Returns n'th fuibonacci number using table f[]
def fib(n) :
# Base cases
if (n == 0) :
return 0
if (n == 1 or n == 2) :
f[n] = 1
return (f[n])
# If fib(n) is already computed
if (f[n]) :
return f[n]
if( n & 1) :
k = (n + 1) // 2
else :
k = n // 2
# Applyting above formula [Note value n&1 is 1
# if n is odd, else 0.
if((n & 1) ) :
f[n] = (fib(k) * fib(k) + fib(k-1) * fib(k-1))
else :
f[n] = (2*fib(k-1) + fib(k))*fib(k)
return f[n]
// # Driver code
// n = 9
// print(fib(n))
然后尝试将其移植到Javascript
^{pr2}$
这显然行不通。在Javascript中,这会导致无限循环。那么如何使用Javascript解决这个问题呢?在
提前谢谢