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

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

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


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

Показать ответ
1241248
Подсказки (3)
  1. Какой вызов выполняется первым внутри функции: F(n−4) или F(n//2)?
  2. Число n выводится только после завершения обоих рекурсивных вызовов.
  3. Для F(8) сначала получите вывод F(4), затем повторно вычислите F(4) из второго вызова и в конце добавьте число 8.
Решение
1. При n≤0 функция ничего не выводит. При положительном n сначала выполняется F(n−4), затем F(n//2), и только после этого выводится n.

2. Разберём вызов F(1): оба рекурсивных вызова завершаются без вывода, затем печатается 1.
F(1)→1

3. Для F(2) вызов F(0) ничего не выводит, затем F(1) выводит 1, после чего печатается 2.
F(2)→12

4. Для F(4) сначала вызывается F(0), затем F(2), после чего печатается 4.
F(4)→124

5. Вызов F(8) дважды приводит к выводу последовательности 124: сначала через F(4), затем через F(8//2)=F(4). После этого печатается 8.
F(8)→124 124 8
Частые ошибки
  • Выводят число до выполнения рекурсивных вызовов.
  • Учитывают вызовы с неположительным аргументом.
  • Забывают, что F(4) вызывается внутри F(8) дважды.

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

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

16Ниже записан рекурсивный алгоритм F на языке Python. def F(n): print(n, end='') if n >= 6: F(n - 1) F(n - 3)…Порядок вывода рекурсивного алгоритма · 696B0616Ниже записан рекурсивный алгоритм F на языке Python. def F(n): if n > 2: print(n) F(n - 1) F(n // 2) Запишите…Порядок вывода рекурсивного алгоритма · 82EE4916Ниже записан рекурсивный алгоритм F на языке Python. def F(n): if n > 2: F(n - 1) F(n // 2) print(n) Запишите…Порядок вывода рекурсивного алгоритма · 8C526216Ниже записан рекурсивный алгоритм F на языке Python. def F(n): if n > 0: print(n) F(n - 1) F(n - 2) Запишите…Порядок вывода рекурсивного алгоритма · 914B1816Ниже записан рекурсивный алгоритм 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 > 0: print(n) F(n - 3) F(n // 2) Запишите…Порядок вывода рекурсивного алгоритма · E508E8

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

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

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

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

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

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

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