前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用js实现斐波那契数列

用js实现斐波那契数列

作者头像
不爱吃糖的程序媛
发布2024-03-15 08:56:18
470
发布2024-03-15 08:56:18
举报
1.定义

斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。 斐波那契数列指的是这样一个数列:

0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711……

它的规律是:这个数列从第 3 项开始,每一项都等于前两项之和。

斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)

2.用js实现斐波那契数列
递归方法 Recursive

递归方法相对简洁,但效率较低,因为对于较大的 n 值,它会产生大量的重复计算。

代码语言:javascript
复制
function fibonacciRecursive(n) {  
  if (n <= 1) {  
    return n;  
  } else {  
    return fibonacciRecursive(n - 1) + fibonacciRecursive(n - 2);  
  }  
}  
  
// 示例:生成前10个斐波那契数  
for (let i = 0; i < 10; i++) {  
  console.log(fibonacciRecursive(i));  
}
循环方法 Iterative

循环方法效率更高,因为它避免了重复计算。

代码语言:javascript
复制
function fibonacciIterative(n) {  
  if (n <= 1) {  
    return n;  
  }  
  let a = 0;  
  let b = 1;  
  let temp;  
  for (let i = 2; i <= n; i++) {  
    temp = a + b;  
    a = b;  
    b = temp;  
  }  
  return b;  
}  
  
// 示例:生成前10个斐波那契数  
for (let i = 0; i < 10; i++) {  
  console.log(fibonacciIterative(i));  
}

在循环方法中,我们维护两个变量 a 和 b,分别代表斐波那契数列中的前两个数。在每次迭代中,我们计算下一个斐波那契数(a + b),并更新 a 和 b 的值。当循环结束时,b 将包含第 n 个斐波那契数。

通常,在处理斐波那契数列时,循环方法比递归方法更受欢迎,因为它具有更好的性能。特别是当 n 较大时,递归方法可能会导致栈溢出或性能问题。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.定义
  • 2.用js实现斐波那契数列
    • 递归方法 Recursive
      • 循环方法 Iterative
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档