16

Решение: Рекурсивный вывод чисел

ЕГЭ · Информатика · Задание 16 · Основы программирования
ПовышеннаяФИПИB701D0Короткий ответ≈ 4 минутыРазбор в 4 шагаОтвет сверен с ключом
Условие

Ниже записан рекурсивный алгоритм $F$. Запишите подряд без пробелов и разделителей все числа, которые будут напечатаны на экране при выполнении вызова $F(4)$. Числа должны быть записаны в том же порядке, в котором они выводятся на экран.

Python
1def F(n):
2    if n > 0:
3        F(n - 2)
4        F(n - 1)
5        print(n)
Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

Решение по шагам

4 шага
1

При $n \leq 0$ функция ничего не выводит. Поэтому $F(1)$ сначала вызывает $F(-1)$ и $F(0)$, а затем выводит $1$.

$$F(1)=1$$
2

Вызов $F(2)$ сначала выполняет $F(0)$, затем $F(1)$ и после этого выводит $2$.

$$F(2)=1\,2=12$$
3

Вызов $F(3)$ выполняет $F(1)$, затем $F(2)$, а затем выводит $3$.

$$F(3)=1\,12\,3=1123$$

Вызов $F(4)$ выполняет $F(2)$, затем $F(3)$, а затем выводит $4$.

$$F(4)=12\,1123\,4=1211234$$
Ответ
1211234
1211234
так ответ выглядит в бланке

Где здесь ошибаются

Вывести число $n$ до рекурсивных вызовов.

Не учитывать вывод числа после завершения обоих рекурсивных вызовов.

Разделить полученную последовательность пробелами или запятыми.

Закрепить приёмВ теме «Основы программирования» ещё 159 задач — с ответом и таким же разбором.
Тренироваться

Как решать задание 16 ЕГЭ, информатика

Разбор этой задачи разложен на 4 шага: видно, откуда берётся каждое число и где теряется балл. Ответ приведён рядом с выкладками, а не вместо них.

Задача из темы «Основы программирования»: в ней 160 задач, и у каждой есть такой же разбор. Регистрация не нужна.