Фибоначчи в JavaScript: методы расчета последовательности

В JavaScript существует несколько методов расчета последовательности Фибоначчи. Вот несколько распространенных подходов:

  1. Рекурсивный метод:

    function fibonacciRecursive(n) {
     if (n <= 1) {
       return n;
     }
     return fibonacciRecursive(n - 1) + fibonacciRecursive(n - 2);
    }
  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];
    }
  3. Метод динамического программирования:

    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];
    }
  4. Метод матричного возведения в степень:

    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. Вы можете выбрать метод, который соответствует вашим потребностям, исходя из таких факторов, как производительность и простота.