Карта курса → Модуль 3 → Урок 3.5

Рекурсия — функция, которая вызывает себя

Решаем задачу через уменьшенную копию самой себя.

Рекурсия — функция, которая вызывает себя

🎣 Hook

Ветка дерева похожа на маленькое дерево. Многие задачи устроены так же: «большое = маленькое + шаг».

🧠 Concept

Термины: list, dictionary, loop, function — пишем по-английски, объясняем по-русски.

Рекурсия работает, когда есть:
1) базовый случай (когда остановиться);
2) рекурсивный шаг (как уменьшить задачу).

Пример факториала:
fact(n) = n * fact(n-1), если n>1; иначе 1.

🧩 Квиз +10 XP
Что обязательно в рекурсивной функции?
A Глобальная переменная
B Базовый случай
C Сортировка
D Словарь

🔧 Практика

Задание 1: заполни базовый случай n == 1.

if n == 1:
    return 1

Заполни пропуски в коде в своей тетради/редакторе. Ключевые ответы: 1.

Задание 2: допиши рекурсивный вызов для суммы 1..n.

return n + sum_to_n(n-1)

Проверь себя: n-1.

🧩 Квиз +10 XP
Рекурсивный шаг должен…
A Увеличивать задачу
B Не менять задачу
C Уменьшать задачу к базовому случаю
D Удалять функцию

🏗️ Сборка: мини-проект

Сделай рекурсивный обход меню квестов (вложенные категории) и выведи все названия квестов.

👹 Мини-босс +120 XP

Комбинируем текущую тему с предыдущими навыками.

A Сделать без структуры, потом чинить
B Сначала план, затем реализация и проверка
C Копировать решение без понимания
D Пропустить тесты ради скорости

💭 Reflection

Теперь ты различаешь рекурсию и цикл, и понимаешь, когда рекурсивная модель делает код проще.