Задание 16 ЕГЭ по информатике · 35359C
Порядок вывода рекурсивного алгоритмаПовышеннаяКЭС 3.7КЭС 3.16
Ниже записан рекурсивный алгоритм F на языке Python.
Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(8). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
def F(n):
if n > 0:
print(n)
F(n - 4)
F(n // 2)Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(8). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
Показать ответ
8421421
Подсказки (3)
- Какое число выводится первым при вызове F(8) и какие два рекурсивных вызова выполняются после этого?
- Для каждого положительного n порядок действий таков: вывести n, выполнить F(n−4), затем выполнить F(⌊n/2⌋).
- Вызов F(8) даёт 8, затем два одинаковых вызова F(4). Каждый вызов F(4) выводит последовательность 4,2,1.
Решение
1. При вызове F(8) сначала выводится число 8. Затем выполняются вызовы F(4) и F(4). F(8)→8, F(4), F(4) 2. Первый вызов F(4) выводит 4, затем вызывает F(0) и F(2). Вызов F(0) ничего не выводит, а F(2) выводит 2, после чего вызывает F(−2) и F(1). 3. Вызов F(1) выводит 1, а его дальнейшие вызовы имеют неположительные аргументы и ничего не выводят. Поэтому один вызов F(4) даёт последовательность 421. 4. Второй вызов F(4) даёт такую же последовательность 421.
Частые ошибки
- Забывают, что после завершения первого рекурсивного вызова выполняется второй.
- Выводят число после рекурсивных вызовов, хотя оно печатается до них.
- Учитывают вызовы с неположительными аргументами, хотя условие вывода — n>0.
Источник: Открытый банк ФИПИ
Похожие задания
16Ниже записан рекурсивный алгоритм F на языке Python. def F(n): print(n, end='') if n >= 3: F(n - 1) F(n - 3)…Порядок вывода рекурсивного алгоритма · 1D337E16Ниже записан рекурсивный алгоритм 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): 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): if n > 0: F(n - 2) F(n // 3) print(n) Запишите…Порядок вывода рекурсивного алгоритма · 55D63C
Нужен репетитор по информатике?
Посмотрите репетиторов, которые ведут занятия в Precettore, или оставьте заявку — подберём сами.
Готовьтесь к ЕГЭ по информатике в Precettore
Варианты с автопроверкой, домашние задания от репетитора, онлайн-доска и разбор ошибок — в одном кабинете. Регистрация бесплатная.