Как я могу найти большое число Фибоначчи? - PullRequest
0 голосов
/ 10 октября 2019

У меня есть проблема, и мне нужно написать программу (на 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

...