fib函数用python编写求第n项,如何用O(n)复杂度的Javascript求第n个Fibonacci数

努力想办法解决这个问题。问题是使用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解决这个问题呢?在

提前谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值