1. Что такое рекурсия?
2. Какие есть базовые условия выхода?
3. Что такое стек вызовов?
4. Задача: Реализовать вычисление n-го числа Фибоначчи классическим способом — через рекурсию
def fib(n: int) -> int:
if n <= 1:
return n
return fib(n - 1) + fib(n - 2)Вопрос
5. Почему возникает ошибка при вычислении больших чисел Фибоначчи?
Ответ
Экспоненциальное количество вызовов и глубокий стек рекурсии, приводящий к превышению лимита и RecursionError в Python.
6. Задача: Предложить оптимизацию вычисления через кеширование
Комментарий кандидата. Ожидалось использование functools.lru_cache, но была реализована собственная версия…