Рекурсивная функция записана на языке Python:
def F(n):
if n == 0:
return 1
if n % 2 == 0:
return F(n - 1) + 2
return 2 * F(n - 1)
Чему равно значение F(5)?
Показать ответ и разборСкрыть ответ и разбор
Верный ответ
- C20
Разбор
Раскрываем рекурсию от базового случая. F(0) = 1. Для нечётного n результат удваивается, для чётного n к нему прибавляется 2. F(1) = 2 · F(0) = 2. F(2) = F(1) + 2 = 4. F(3) = 2 · F(2) = 8. F(4) = F(3) + 2 = 10. F(5) = 2 · F(4) = 20. Значение «10» — это F(4), а не F(5). Значения «18» и «22» получаются, если для нечётного n вместо удвоения прибавить 2 или перепутать условия для чётных и нечётных n.