Задание 16 ЕГЭ по информатике · 933635
Порядок вывода рекурсивного алгоритмаПовышеннаяКЭС 3.7КЭС 3.16
Ниже записан рекурсивный алгоритм F на языке Python.
Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(8). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
def F(n):
if n > 0:
F(n - 4)
F(n // 2)
print(n)Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(8). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
Показать ответ
1241248
Подсказки (3)
- Какой вызов выполняется первым внутри функции: F(n−4) или F(n//2)?
- Число n выводится только после завершения обоих рекурсивных вызовов.
- Для 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
Варианты с автопроверкой, домашние задания от репетитора, онлайн-доска и разбор ошибок — в одном кабинете. Регистрация бесплатная.