当前位置: 首页 > news >正文

【算法题】:斐波那契数列

用 JavaScript 实现一个 fibonacci 函数,满足:

  • 输入 n(从0开始计数)
  • 输出第 n 个斐波那契数(斐波那契数列从 1 开始:1,1,2,3,5,8,13,21…)

示例:

  • fibonacci(0) => 1
  • fibonacci(4) => 5

方法一:

function fibonacci(n) {if (n === 0 || n === 1) return 1;let a = 1, b = 1;for (let i = 2; i <= n; i++) {let temp = a + b;a = b;b = temp;}return b;
}// 测试
console.log(fibonacci(0)); // 1
console.log(fibonacci(4)); // 5
console.log(fibonacci(7)); // 21

方法二:

function fibonacci(count) {function fn(count, curr = 1, next = 1) {if (count === 0) {return curr;} else {return fn(count - 1, next, curr + next);}}return fn(count);
}// 测试
console.log(fibonacci(0)); // 1
console.log(fibonacci(4)); // 5
console.log(fibonacci(7)); // 21

方法三:

function fibonacci(n) {if (n <= 1) return 1;let arr = [1, 1]; // 初始化数组,前两个斐波那契数是1和1let i = n - 1; // 需要补充的次数while (i > 0) {let a = arr[arr.length - 2];let b = arr[arr.length - 1];arr.push(a + b);i--;}return arr[arr.length - 1];
}// 测试
console.log(fibonacci(0)); // 1
console.log(fibonacci(4)); // 5
console.log(fibonacci(7)); // 21
http://www.dtcms.com/a/325012.html

相关文章:

  • 【langchain】如何给langchain提issue和提pull request?
  • SpringIoc 实践和应用--XML配置
  • 数据结构-deque(双端队列)和queue(队列)区别
  • Flask多进程数据库访问问题详解
  • spring全家桶使用教程
  • Lua语言元表、协同程序
  • 密码学的数学基础2-Paillier为什么产生密钥对比RSA慢
  • SQL三剑客:DELETE、TRUNCATE、DROP全解析
  • 深度相机---双目深度相机
  • 浏览器CEFSharp+X86+win7 之 浏览器右键菜单(六)
  • Mysql笔记-存储过程与存储函数
  • vulnhub-doubletrouble靶场攻略
  • Linux C文件操作函数
  • 谷歌DeepMind发布Genie 3:通用型世界模型,可生成前所未有多样化的交互式虚拟环境
  • C++移动语义、完美转发及编译器优化零拷贝
  • PostgreSQL 批量COPY导入优化参数配置
  • 近红外与可见光图像融合的多种方法实现
  • OpenAI正式发布GPT-5:迈向AGI的关键一步
  • Java基础-多线程
  • lesson34:深入理解Python线程:从基础到实战优化
  • hysAnalyser --- 支持文件转播UDP/RTP实时流功能
  • CompletableFuture实现Excel 多个sheet页批量导出
  • 【数据分析】循环移位岭回归分析:光遗传学冻结行为模式研究
  • 【PyTorch】单目标检测项目部署
  • MPLS的基本工作原理
  • AI玩具新浪潮:百亿资本涌入,情感计算重塑陪伴经济
  • WAIC2025逛展分享·AI鉴伪技术洞察“看不见”的伪造痕迹
  • JAVA中关于Stream流的使用
  • 虚拟主机示例
  • vuhub drippingblues靶场攻略