16

Решение: Вывод рекурсивной функции

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

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

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

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

4 шага
1

При вызове $F(4)$ сначала выводится число $4$. Затем выполняются два вызова $F(3)$.

$$4$$
2

Первый вызов $F(3)$ выводит $3$, после чего два вызова $F(2)$ выводят по $2$ каждый.

$$3\,2\,2$$
3

Второй вызов $F(3)$ аналогично выводит $3$, затем дважды выводится $2$.

$$3\,2\,2$$

Объединяем числа в порядке их вывода без пробелов и разделителей.

$$4\,3\,2\,2\,3\,2\,2$$
Ответ
4322322
4322322
так ответ выглядит в бланке

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

Записывают результаты рекурсивных вызовов перед числом текущего вызова.

Учитывают только один из двух одинаковых рекурсивных вызовов.

Добавляют пробелы или разделители между цифрами.

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

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

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

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