РУҚА
16

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

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

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

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

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

4 шага
1

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

$$F(3) \to 3, F(1), F(2), F(1)$$
2

Вызов $F(1)$ выводит только число 1, так как условие $n \geq 2$ не выполняется.

$$F(1) \to 1$$
3

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

$$F(2) \to 2, 0, 1, 0$$

Собираем числа в порядке их вывода: 3, 1, 2, 0, 1, 0, 1.

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

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

Не учитывать повторный вызов $F(n-2)$.

Записывать результат рекурсивного вызова после всех его вложенных вызовов.

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

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

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

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

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