用js实现斐波那契数列

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 值,它会产生大量的重复计算。

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

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

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 较大时,递归方法可能会导致栈溢出或性能问题。

相关推荐

  1. js实现数列

    2024-03-15 07:38:02       18 阅读
  2. 科普:敏捷估算为什么数列

    2024-03-15 07:38:02       28 阅读
  3. C#: BigInteger 计算 数列

    2024-03-15 07:38:02       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-15 07:38:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-15 07:38:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-15 07:38:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-15 07:38:02       20 阅读

热门阅读

  1. 最小二乘法

    2024-03-15 07:38:02       19 阅读
  2. 多线程(锁策略, synchronized 对应的锁策略)

    2024-03-15 07:38:02       21 阅读
  3. typescript 学习

    2024-03-15 07:38:02       22 阅读
  4. C++ 内存泄漏检测工具——Valgrind(Linux系统)

    2024-03-15 07:38:02       20 阅读
  5. Python分类汇总N张Excel表中的数据(附源码下载)

    2024-03-15 07:38:02       21 阅读
  6. 控制工程学 en

    2024-03-15 07:38:02       19 阅读
  7. C#进阶-ASP.NET常用控件总结

    2024-03-15 07:38:02       20 阅读
  8. vue:功能【xlsx】纯前端导出Excel

    2024-03-15 07:38:02       24 阅读
  9. 每日一题 第三期 洛谷 国王游戏

    2024-03-15 07:38:02       19 阅读
  10. 2062:【例1.3】电影票

    2024-03-15 07:38:02       20 阅读
  11. 基于单片机的步进电机升降速并行控制

    2024-03-15 07:38:02       18 阅读
  12. 有密码pdf保存为无密码的

    2024-03-15 07:38:02       18 阅读
  13. C# 中的 List<int> 和 int[] ?

    2024-03-15 07:38:02       21 阅读
  14. GO sync.pool学习笔记

    2024-03-15 07:38:02       18 阅读