Задание 16 ЕГЭ по информатике · E6C892
Порядок вывода рекурсивного алгоритмаПовышеннаяКЭС 3.7КЭС 3.16
Ниже записан рекурсивный алгоритм F на языке Python.
Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(7). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
def F(n):
if n > 2:
F(n // 2)
F(n - 1)
print(n)Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(7). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
Показать ответ
3334567
Подсказки (3)
- В каком порядке выполняются два рекурсивных вызова и команда print(n)?
- Сначала выполняется F(n // 2), затем F(n - 1), и только после этого выводится n. При n ≤ 2 число не выводится.
- Для F(7): сначала F(3), затем F(6), затем выводится 7. Последовательно раскройте F(3), F(6), F(5) и F(4).
Решение
1. При n ≤ 2 функция сразу завершается, поэтому значения 1 и 2 не выводятся. 2. Вызов F(3) сначала выполняет F(1) и F(2), затем выводит 3. 3. Вызов F(4) выполняет F(2), затем F(3), которая выводит 3, после чего выводит 4. 4. Вызов F(5) выполняет F(2), затем F(4), поэтому выводит 3, 4, 5. 5. Вызов F(6) выполняет F(3), затем F(5), поэтому выводит 3, 3, 4, 5, 6. 6. Вызов F(7) сначала выполняет F(3), затем F(6), а после этого выводит 7.
Частые ошибки
- Выводят число до выполнения рекурсивных вызовов.
- Учитывают значения 1 и 2, хотя условие n > 2 для них ложно.
- Меняют порядок вызовов F(n // 2) и F(n - 1).
Источник: Открытый банк ФИПИ
Похожие задания
16Ниже записан рекурсивный алгоритм 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) Запишите…Порядок вывода рекурсивного алгоритма · E508E816Ниже записан рекурсивный алгоритм 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
Варианты с автопроверкой, домашние задания от репетитора, онлайн-доска и разбор ошибок — в одном кабинете. Регистрация бесплатная.