Задание 16 ЕГЭ по информатике · A75BAE
Порядок вывода рекурсивного алгоритмаПовышеннаяКЭС 3.7КЭС 3.16
Ниже записан рекурсивный алгоритм F на языке Python.
Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(7). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
def F(n):
if n > 0:
F(n - 3)
F(n // 2)
print(n)Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(7). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
Показать ответ
1124137
Подсказки (3)
- В каком порядке выполняются два рекурсивных вызова и вывод текущего значения?
- Для каждого положительного n сначала вычисляются F(n−3) и F(⌊n/2⌋), а число n выводится последним.
- Получите: F(1)=1, F(2)=12, F(4)=1124, F(3)=13, поэтому F(7)=1124137.
Решение
1. Вызов F(7) сначала вызывает F(4), затем F(3), после чего выводит 7. F(7)=F(4),F(3),7 2. Для вызова F(1) оба последующих вызова имеют неположительные аргументы, поэтому выводится только 1. F(1)=1 3. Для вызова F(2) сначала не выполняется F(−1), затем выполняется F(1) и выводится 2. F(2)=12 4. Вызов F(4) даёт последовательность от F(1), затем от F(2), после чего выводит 4. F(4)=1 12 4=1124 5. Вызов F(3) сначала не выполняет F(0), затем получает результат F(1) и выводит 3. F(3)=13 6. Объединяем результаты в порядке выполнения рекурсивных вызовов. F(7)=1124 13 7=1124137
Частые ошибки
- Выводить число до выполнения рекурсивных вызовов.
- Заменять целочисленное деление n//2 обычным делением.
- Учитывать вызовы с нулевым или отрицательным аргументом как выводящие числа.
Источник: Открытый банк ФИПИ
Похожие задания
16Ниже записан рекурсивный алгоритм 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: F(n - 4) F(n // 2) print(n) Запишите…Порядок вывода рекурсивного алгоритма · 93363516Ниже записан рекурсивный алгоритм 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 - 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): if n > 0: print(n) F(n - 2) F(n - 1) Запишите…Порядок вывода рекурсивного алгоритма · EC21C2
Нужен репетитор по информатике?
Посмотрите репетиторов, которые ведут занятия в Precettore, или оставьте заявку — подберём сами.
Готовьтесь к ЕГЭ по информатике в Precettore
Варианты с автопроверкой, домашние задания от репетитора, онлайн-доска и разбор ошибок — в одном кабинете. Регистрация бесплатная.