Задание 16 ЕГЭ по информатике · 1D337E
Порядок вывода рекурсивного алгоритмаПовышеннаяКЭС 3.7КЭС 3.16
Ниже записан рекурсивный алгоритм F на языке Python.
Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(5). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
def F(n):
print(n, end='')
if n >= 3:
F(n - 1)
F(n - 3)Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(5). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
Показать ответ
5432012
Подсказки (3)
- Каждый вызов сначала выводит своё значение n, а затем выполняет рекурсивные вызовы слева направо.
- Для n >= 3 порядок вызовов задаётся как F(n)→F(n−1)→F(n−3).
- Раскройте вызов F(5): сначала обработайте F(4), затем F(2); для каждого значения меньше 3 рекурсия прекращается.
Решение
1. Вызов F(5) сначала выводит цифру 5, затем вызывает F(4) и F(2). F(5)→5,F(4),F(2) 2. Раскрываем вызов F(4): выводится 4, затем выполняются F(3) и F(1). F(4)→4,F(3),F(1) 3. Вызов F(3) выводит 3, затем выполняет F(2) и F(0). Вызовы с аргументами 2, 1 и 0 только выводят значение. F(3)→3,2,0 4. Последовательность вывода для F(4) равна 43201, а затем после завершения F(4) вызывается F(2) из исходного вызова. F(4)→43201 5. Объединяем все значения в порядке выполнения вызовов. 5+43201+2=5432012
Частые ошибки
- Меняют местами вызовы F(n - 1) и F(n - 3).
- Не выводят значения при n < 3.
- Пытаются записать только конечные значения рекурсивных вызовов, не учитывая первоначальный вывод n.
Источник: Открытый банк ФИПИ
Похожие задания
16Ниже записан рекурсивный алгоритм F на языке Python. def F(n): print(n, end='') if n >= 4: F(n - 3) F(n - 1)…Порядок вывода рекурсивного алгоритма · 1C457A16Ниже записан рекурсивный алгоритм F на языке Python. def F(n): print(n, end='') if n >= 3: F(n // 2) F(n - 1)…Порядок вывода рекурсивного алгоритма · 1CCE5816Ниже записан рекурсивный алгоритм F на языке Python. def F(n): print(n, end='') if n >= 2: F(n - 2) F(n - 1)…Порядок вывода рекурсивного алгоритма · 26ADAF16Ниже записан рекурсивный алгоритм F на языке Python. def F(n): print(n, end='') if n >= 4: F(n - 1) F(n // 2)…Порядок вывода рекурсивного алгоритма · 28131C16Ниже записан рекурсивный алгоритм F на языке Python. def F(n): if n > 2: print(n) F(n // 2) F(n - 1) Запишите…Порядок вывода рекурсивного алгоритма · 2D68B616Ниже записан рекурсивный алгоритм F на языке Python. def F(n): if n > 0: print(n) F(n - 4) F(n // 2) Запишите…Порядок вывода рекурсивного алгоритма · 35359C16Ниже записан рекурсивный алгоритм F на языке Python. def F(n): print(n, end='') if n >= 7: F(n - 1) F(n - 3)…Порядок вывода рекурсивного алгоритма · 3989D316Ниже записан рекурсивный алгоритм F на языке Python. def F(n): if n > 0: F(n - 3) print(n) F(n // 2) Запишите…Порядок вывода рекурсивного алгоритма · 4ABC65
Нужен репетитор по информатике?
Посмотрите репетиторов, которые ведут занятия в Precettore, или оставьте заявку — подберём сами.
Готовьтесь к ЕГЭ по информатике в Precettore
Варианты с автопроверкой, домашние задания от репетитора, онлайн-доска и разбор ошибок — в одном кабинете. Регистрация бесплатная.