Курс 3.8 — Алгоритмы · Раздел 07 · Урок 7.3

Пример 1. Последовательность Фибоначчи

Вычислим числа Фибоначчи, сохраняя промежуточные значения в массиве.

Вычислим числа Фибоначчи, сохраняя промежуточные значения в массиве.
7.3 — Пример 1. Последовательность Фибоначчи

Материал урока

Ты уже встречался с числами Фибоначчи:

1, 1, 2, 3, 5, 8, 13, ...

Каждое число равно сумме двух предыдущих.

Можно решать задачу рекурсивно, но это долго. Гораздо быстрее воспользоваться динамикой — просто запоминать уже найденные значения.

Вот динамическое решение на Python:

def fibonacci(n):
    # создаём список для хранения значений
    fibo = [0] * (n + 1)
    fibo[0] = 0
    fibo[1] = 1

    # идём от 2 до n и считаем по формуле
    for i in range(2, n + 1):
        fibo[i] = fibo[i - 1] + fibo[i - 2]

    return fibo[n]

# Проверим
print(fibonacci(10))  # 👉 55

Сложность алгоритма: O(n) — линейная. Это гораздо быстрее, чем пересчитывать всё заново!