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