16

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

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

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

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

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

4 шага
1

Функция сначала выводит значение аргумента, а затем при $n \geq 6$ вызывает себя для $n-1$ и $n-3$.

$$F(n)=n,F(n-1),F(n-3)\quad\text{при }n\geq 6$$
2

Разбираем вызов $F(6)$: сначала выводится 6, затем выполняются $F(5)$ и $F(3)$.

$$F(6)=653$$
3

Разбираем вызов $F(7)$: выводится 7, затем результат $F(6)$ и результат $F(4)$.

$$F(7)=7\,653\,4=76534$$

Разбираем вызов $F(8)$: выводится 8, затем результат $F(7)$ и результат $F(5)$.

$$F(8)=8\,76534\,5=8765345$$
Ответ
8765345
8765345
так ответ выглядит в бланке

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

Меняют порядок рекурсивных вызовов $F(n-1)$ и $F(n-3)$.

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

Продолжают рекурсию для значений $n<6$.

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

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

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

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