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

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

用 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.xdnf.cn/news/17432.html

相关文章:

  • 【Python】常用内置模块
  • 安全运维工具链全解析
  • Android快速视频解码抽帧FFmpegMediaMetadataRetriever,Kotlin(2)
  • 大模型开发工具的汇总
  • SQL Server从入门到项目实践(超值版)读书笔记 23
  • cursor, vscode黄色波浪线警告问题
  • 从零到精通:嵌入式BLE开发实战指南
  • 计算机网络:(十四)传输层(下)详细讲解TCP报文段的首部格式,TCP 可靠传输的实现与TCP 的流量控制
  • Mybatis和MybatisPlus的对比区分理解法
  • 基于 RabbitMQ 死信队列+TTL 实现延迟消息+延迟插件基本使用
  • 给AI装上“翻译聚光灯”:注意力机制的机器翻译革命
  • Docker 镜像常见标签(如 `标准`、`slim`、`alpine` 和 `noble`)详细对比
  • 编程基础之字符串——统计数字字符个数
  • TypeScript 中的as const是什么?
  • React:useEffect 与副作用
  • token危机解决?扩散模型数据潜力3倍于自回归,重训480次性能仍攀升
  • 浏览器CEFSharp88+X86+win7 之多页面展示(四)
  • LLaMA-Adapter Efficient Fine-tuning of Language Models with Zero-init Attention
  • Redis - 使用 Redis HyperLogLog 进行高效基数统计
  • Spring Boot与WebSocket构建物联网实时通信系统
  • 基于Spring Boot和WebSocket的实时聊天系统
  • go语言运算符
  • 遇到前端导出 Excel 文件出现乱码或文件损坏的问题
  • Linux 管道命令及相关命令练习与 Shell 编程、Tomcat 安装
  • 基于Ubuntu20.04的环境,编译QT5.15.17源码
  • Lua语言元表、协同程序
  • JavaWeb(苍穹外卖)--学习笔记17(Apache Echarts)
  • LightGBM 与 GBDT 在机器学习中的性能与特点比较
  • Graph-R1:一种用于结构化多轮推理的智能图谱检索框架,并结合端到端强化学习
  • 【最后203篇系列】031 构建MCP尝试