Задание 16 ЕГЭ по информатике · EC21C2
Порядок вывода рекурсивного алгоритмаПовышеннаяКЭС 3.7КЭС 3.16
Ниже записан рекурсивный алгоритм F на языке Python.
Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(4). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
def F(n):
if n > 0:
print(n)
F(n - 2)
F(n - 1)Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(4). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
Показать ответ
4213121
Подсказки (3)
- Сначала функция выводит n, а затем последовательно вызывает F(n - 2) и F(n - 1), если n > 0.
- Рассмотрите дерево вызовов: F(4) → F(2), F(3); каждый вызов с положительным аргументом сначала печатает свой аргумент.
- Последовательность вызовов с выводом: F(4): 4, затем F(2): 2, F(1): 1, F(3): 3, F(1): 1, F(2): 2, F(1): 1.
Решение
1. При вызове F(4) сначала выводится 4, затем выполняются вызовы F(2) и F(3). F(4)→4,F(2),F(3) 2. Вызов F(2) выводит 2, затем вызывает F(0) и F(1). Вызов F(0) ничего не выводит, а F(1) выводит 1. F(2)→2,F(0),F(1)→21 3. Вызов F(3) выводит 3, затем вызывает F(1) и F(2). Вызов F(1) выводит 1, а F(2) выводит 2 и затем ещё 1. F(3)→3,F(1),F(2)→3121 4. Объединяем результаты в порядке выполнения рекурсивных вызовов. 4 21 3121=4213121
Частые ошибки
- Записывают результат вызова F(n - 1) перед результатом F(n - 2).
- Учитывают вывод при n = 0, хотя условие n > 0 не выполняется.
- Пропускают рекурсивные вызовы внутри F(2) или F(3).
Источник: Открытый банк ФИПИ
Похожие задания
16Ниже записан рекурсивный алгоритм 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 > 2: F(n // 2) F(n - 1) print(n) Запишите…Порядок вывода рекурсивного алгоритма · E6C89216Ниже записан рекурсивный алгоритм F на языке Python. def F(n): print(n, end='') if n >= 3: F(n - 1) F(n - 1)…Порядок вывода рекурсивного алгоритма · F7CF4916Алгоритм вычисления значения функции F(n) , где n – целое число, задан следующими соотношениями: F(n) = 1 при…Значение функции или выражения
Нужен репетитор по информатике?
Посмотрите репетиторов, которые ведут занятия в Precettore, или оставьте заявку — подберём сами.
Готовьтесь к ЕГЭ по информатике в Precettore
Варианты с автопроверкой, домашние задания от репетитора, онлайн-доска и разбор ошибок — в одном кабинете. Регистрация бесплатная.