У меня есть проблема, и мне нужно написать программу (на 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-й% 10 ^ 6 + 7).
Ввод ограничений: целое число n (0