РУҚА
16

Решение: Рекурсивный алгоритм F

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

Ниже на пяти языках программирования записан рекурсивный алгоритм $F$. Во всех вариантах алгоритм эквивалентен следующему: функция $F(n)$ выводит число $n$. Если $n \ge 3$, сначала вызывается $F(\lfloor n/2 \rfloor)$, затем $F(n-1)$. Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова $F(5)$. Числа должны быть записаны в том же порядке, в котором они выводятся на экран.

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

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

4 шага
1

Вызов $F(5)$ сразу выводит число 5. Затем выполняется вызов $F(2)$.

$$5$$
2

Вызов $F(2)$ выводит 2 и не порождает новых вызовов, так как $2 < 3$.

$$52$$
3

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

$$524$$

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

$$5242312$$
Ответ
5242312
5242312
так ответ выглядит в бланке

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

Перепутать порядок рекурсивных вызовов $F(\lfloor n/2 \rfloor)$ и $F(n-1)$.

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

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

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

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

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

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