Задание 16 ЕГЭ по информатике · 55D63C
Порядок вывода рекурсивного алгоритмаПовышеннаяКЭС 3.7КЭС 3.16
Ниже записан рекурсивный алгоритм F на языке Python.
Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(7). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
def F(n):
if n > 0:
F(n - 2)
F(n // 3)
print(n)Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(7). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
Показать ответ
1131527
Подсказки (3)
- В каком порядке выполняются два рекурсивных вызова и команда вывода числа?
- Сначала вычисляется F(n−2), затем F(n//3), и только после этого выводится n.
- Раскройте вызовы: F(7)→F(5),F(2),7; F(5)→F(3),F(1),5; F(3)→F(1),F(1),3. Каждый вызов F(1) выводит число 1.
Решение
1. При вызове F(7) сначала выполняется F(5), затем F(2), после чего выводится 7. F(7)→F(5)→F(3)→F(1), F(1), 3, F(1), 5, F(2), 7 2. Вызов F(1) не выполняет дальнейших положительных рекурсивных вызовов и выводит 1. Поэтому вызов F(3) выводит 113. F(3)→1,1,3 3. Вызов F(5) выводит последовательность 11315, а вызов F(2) сначала не выводит ничего при F(0), затем выводит 2. F(5)→11315,F(2)→2 4. Объединяем результаты вызова F(7) и записываем числа подряд без разделителей. 1 1 3 1 5 2 7→1131527
Частые ошибки
- Выводят число до выполнения рекурсивных вызовов.
- Пропускают повторные вызовы F(1).
- Записывают пробелы или разделители между выведенными числами.
Источник: Открытый банк ФИПИ
Похожие задания
16Ниже записан рекурсивный алгоритм 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) Запишите…Порядок вывода рекурсивного алгоритма · 4ABC6516Ниже записан рекурсивный алгоритм F на языке Python. def F(n): if n > 0: F(n - 1) print(n) F(n - 2) Запишите…Порядок вывода рекурсивного алгоритма · 4E277016Ниже записан рекурсивный алгоритм 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) Запишите…Порядок вывода рекурсивного алгоритма · 914B18
Нужен репетитор по информатике?
Посмотрите репетиторов, которые ведут занятия в Precettore, или оставьте заявку — подберём сами.
Готовьтесь к ЕГЭ по информатике в Precettore
Варианты с автопроверкой, домашние задания от репетитора, онлайн-доска и разбор ошибок — в одном кабинете. Регистрация бесплатная.