В JavaScript существует несколько методов расчета последовательности Фибоначчи. Вот несколько распространенных подходов:
-
Рекурсивный метод:
function fibonacciRecursive(n) { if (n <= 1) { return n; } return fibonacciRecursive(n - 1) + fibonacciRecursive(n - 2); } -
Итеративный метод:
function fibonacciIterative(n) { let fib = [0, 1]; for (let i = 2; i <= n; i++) { fib[i] = fib[i - 1] + fib[i - 2]; } return fib[n]; } -
Метод динамического программирования:
function fibonacciDynamic(n) { let fib = []; fib[0] = 0; fib[1] = 1; for (let i = 2; i <= n; i++) { fib[i] = fib[i - 1] + fib[i - 2]; } return fib[n]; } -
Метод матричного возведения в степень:
function power(matrix, n) { let result = [[1, 0], [0, 1]]; while (n > 0) { if (n % 2 === 1) { result = multiply(result, matrix); } matrix = multiply(matrix, matrix); n = Math.floor(n / 2); } return result[0][1]; } function multiply(matrix1, matrix2) { let result = []; result[0] = [ matrix1[0][0] * matrix2[0][0] + matrix1[0][1] * matrix2[1][0], matrix1[0][0] * matrix2[0][1] + matrix1[0][1] * matrix2[1][1] ]; result[1] = [ matrix1[1][0] * matrix2[0][0] + matrix1[1][1] * matrix2[1][0], matrix1[1][0] * matrix2[0][1] + matrix1[1][1] * matrix2[1][1] ]; return result; } function fibonacciMatrix(n) { if (n <= 1) { return n; } let matrix = [[1, 1], [1, 0]]; return power(matrix, n - 1); }
Эти методы предоставляют различные способы вычисления последовательности Фибоначчи в JavaScript. Вы можете выбрать метод, который соответствует вашим потребностям, исходя из таких факторов, как производительность и простота.