Рекурсивная функция на Python задана так: def f(n): if n <= 1: return 1 else: return f(n - 1) + f(n - 2). Установите соответствие между вызовом функции и значением, которое она возвращает:
1. f(5)
2. f(6)
Показать ответ и разборСкрыть ответ и разбор
Верный ответ
- 1D8
- 2B13
Разбор
Базовый случай: при n ≤ 1 функция возвращает 1, значит f(0) = 1 и f(1) = 1. Далее каждое значение равно сумме двух предыдущих: f(2) = 1 + 1 = 2, f(3) = 2 + 1 = 3, f(4) = 3 + 2 = 5, f(5) = 5 + 3 = 8, f(6) = 8 + 5 = 13. Следовательно, f(5) возвращает «8», а f(6) возвращает «13». Значение «5» — это f(4), а «21» — это f(7), то есть результат сдвига на один шаг.