Задание 16 ЕГЭ по информатике · E508E8

Порядок вывода рекурсивного алгоритмаПовышеннаяКЭС 3.7КЭС 3.16
Ниже записан рекурсивный алгоритм F на языке Python.

def F(n):
if n > 0:
print(n)
F(n - 3)
F(n // 2)


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

Показать ответ
7412131
Подсказки (3)
  1. В каком порядке выполняются команды внутри функции: сначала рекурсивный вызов F(n−3) или F(n//2)?
  2. При каждом положительном n сначала выводится n, затем полностью выполняется F(n−3), и только после этого — F(n//2).
  3. Разверните вызовы: F(7)→F(4),F(3); F(4)→F(1),F(2); F(3)→F(0),F(1). Полученная последовательность вывода: 7,4,1,2,1,3,1.
Решение
1. Вызов F(7) выводит число 7, затем последовательно вызывает F(4) и F(3).
F(7)→7, F(4), F(3)

2. Вызов F(4) выводит 4. Вызов F(1) выводит 1, а затем вызов F(2) выводит 2 и после вызова F(−1) вызывает F(1), который выводит 1.
F(4)→4,1,2,1

3. Вызов F(3) выводит 3, затем выполняет F(0), который ничего не выводит, и F(1), который выводит 1.
F(3)→3,1

4. Объединяем числа в порядке их вывода и убираем разделители.
7,4,1,2,1,3,1→7412131
Частые ошибки
  • Выполняют второй рекурсивный вызов до полного завершения первого.
  • Учитывают вывод для вызовов с неположительным аргументом.
  • Записывают разделители между выведенными числами.

Источник: Открытый банк ФИПИ

Похожие задания

16Ниже записан рекурсивный алгоритм F на языке Python. def F(n): if n > 0: F(n - 4) F(n // 2) print(n) Запишите…Порядок вывода рекурсивного алгоритма · 93363516Ниже записан рекурсивный алгоритм F на языке Python. def F(n): if n > 0: print(n) F(n // 3) F(n - 2) Запишите…Порядок вывода рекурсивного алгоритма · 963C1F16Ниже записан рекурсивный алгоритм F на языке Python. def F(n): if n > 0: F(n - 3) F(n // 2) print(n) Запишите…Порядок вывода рекурсивного алгоритма · A75BAE16Ниже записан рекурсивный алгоритм F на языке Python. def F(n): if n > 0: F(n - 2) F(n - 1) print(n) Запишите…Порядок вывода рекурсивного алгоритма · B701D016Ниже записан рекурсивный алгоритм F на языке Python. def F(n): if n > 2: F(n // 2) F(n - 1) print(n) Запишите…Порядок вывода рекурсивного алгоритма · E6C89216Ниже записан рекурсивный алгоритм F на языке Python. def F(n): if n > 0: print(n) F(n - 2) F(n - 1) Запишите…Порядок вывода рекурсивного алгоритма · EC21C216Ниже записан рекурсивный алгоритм F на языке Python. def F(n): print(n, end='') if n >= 3: F(n - 1) F(n - 1)…Порядок вывода рекурсивного алгоритма · F7CF49

Нужен репетитор по информатике?

Посмотрите репетиторов, которые ведут занятия в Precettore, или оставьте заявку — подберём сами.

Репетиторы по информатике

Подбор репетитора

Напишите, что нужно, — команда Precettore подберёт репетитора и свяжется с вами.

Готовьтесь к ЕГЭ по информатике в Precettore

Варианты с автопроверкой, домашние задания от репетитора, онлайн-доска и разбор ошибок — в одном кабинете. Регистрация бесплатная.