16

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

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

Ниже на пяти языках программирования записан рекурсивный алгоритм F. При вызове функции сначала выводится значение параметра n. Если n >= 4, затем выполняются вызовы F(n - 3) и F(n - 1) именно в указанном порядке. Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(6). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.

Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

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

4 шага
1

При вызове $F(6)$ сначала выводится 6. Так как $6 \ge 4$, выполняется вызов $F(3)$, который выводит 3 и завершается.

$$F(6): 6 \to F(3): 3$$
2

Затем выполняется вызов $F(5)$, который выводит 5. Он вызывает $F(2)$ и $F(4)$ в этом порядке.

$$F(5): 5 \to F(2): 2,\ F(4): 4$$
3

Вызов $F(4)$ после вывода 4 вызывает $F(1)$, выводящий 1, а затем $F(3)$, выводящий 3.

$$F(4): 4 \to F(1): 1,\ F(3): 3$$

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

$$6,3,5,2,4,1,3 \Rightarrow 6352413$$
Ответ
6352413
6352413
так ответ выглядит в бланке

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

Меняют местами рекурсивные вызовы F(n - 3) и F(n - 1).

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

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

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

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

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

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