javascript - 我怎样才能找到一个大的斐波那契数?
问题描述
我有一个问题,我必须编写一个程序(在 JavaScript 中)来返回第 n 个斐波那契数,当我的输入不是很大时,这个程序工作得很好:
function nthFibConstantTime(n) {
let phi = (1 + Math.sqrt(5)) / 2;
return Math.round(Math.pow(phi, n) / Math.sqrt(5));
}
nthFibConstantTime(5) // 5
nthFibConstantTime(9) // 34
nthFibConstantTime(788) // 2.1516692574825388e+164
但是,输入n
,例如 n = 1500,程序返回Infinity
,这不是我所期望的。
function nthFibConstantTime(n) {
let phi = (1 + Math.sqrt(5)) / 2;
return Math.round(Math.pow(phi, n) / Math.sqrt(5));
}
nthFibConstantTime(1500) // Infinity
任何人都可以帮助我用 JavaScript 编写这个程序来返回第 n 个斐波契数,以防输出太大而不能用 JavaScript 中的数字表示,输出应该返回这个结果MOD
10^6+7 (n-th % 10^6 + 7)。
约束输入:整数 n (0 < n ≤ 10^15)
解决方案
推荐阅读
- javascript - discord.js - 将代码嵌入
- wordpress - 如何在元框中列出自定义类型的帖子?
- python-2.7 - 在 PySpark 中使用拆分功能
- r - 在ggplot中标记段的中点
- visual-studio - 如何从命令行限制 Visual Studio 构建的 cmake 配置类型?
- javascript - replace() 方法不替换
- java - 使用 End2endIT 测试连接到同一频道的两个组织。第二个在实例化链码时失败
- javascript - bignumber.js 中的 `c`、`e` 和 `s` 是什么意思?
- java - JLabel 也呈现在按钮上
- javascript - Javascript IF 输入语句