Рекурсивная функция задана следующим соотношением:
Если
Что выведет программа при вызове ? В ответе запишите последовательность выведенных цифр слитно (без пробелов).
Решение программой:
def f(n):
if n > 0:
f(n - 2)
print(n)
f(n - 3)
print(f(5))
Решение руками:
Рассмотрим последовательно, что будет выводится на экран, начиная с . С помощью стрелочки
обозначим печать числа на экране.
(Выводится только текущее значение
, другие функции не вызываются);
(Выводится только текущее значение
, другие функции не вызываются);
(Выводится число, которое было получено от
;
(Выводится текущее значение
).
(Выводится число, которое было получено от
);
(Выводится текущее значение
);
(Выводится число, которое было получено от
).
(Выводится число, которое было получено от
);
(Выводится текущее значение
);
(Выводится число, которое было получено от
).
Следовательно, итоговая последовательность .