Задание 16 ЕГЭ по информатике · 696B06
Порядок вывода рекурсивного алгоритмаПовышеннаяКЭС 3.7КЭС 3.16
Ниже записан рекурсивный алгоритм F на языке Python.
Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(8). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
def F(n):
print(n, end='')
if n >= 6:
F(n - 1)
F(n - 3)Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(8). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
Показать ответ
8765345
Подсказки (3)
- В каком порядке выполняются команды внутри функции: сначала вывод текущего значения, затем рекурсивные вызовы?
- Для каждого значения n≥6 сначала выполняется вызов F(n−1), затем вызов F(n−3).
- Разверните вызовы: F(8)→8,F(7),F(5); F(7)→7,F(6),F(4); F(6)→6,F(5),F(3). Последовательно объедините результаты.
Решение
1. Функция сначала выводит значение аргумента, а затем при n≥6 вызывает себя для n−1 и n−3. F(n)=n,F(n−1),F(n−3)при n≥6 2. Разбираем вызов F(6): сначала выводится 6, затем выполняются F(5) и F(3). F(6)=653 3. Разбираем вызов F(7): выводится 7, затем результат F(6) и результат F(4). F(7)=7 653 4=76534 4. Разбираем вызов F(8): выводится 8, затем результат F(7) и результат F(5). F(8)=8 76534 5=8765345
Частые ошибки
- Меняют порядок рекурсивных вызовов F(n−1) и F(n−3).
- Не учитывают вывод числа до выполнения рекурсивных вызовов.
- Продолжают рекурсию для значений n<6.
Источник: Открытый банк ФИПИ
Похожие задания
16Ниже записан рекурсивный алгоритм 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) Запишите…Порядок вывода рекурсивного алгоритма · 55D63C16Ниже записан рекурсивный алгоритм 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) Запишите…Порядок вывода рекурсивного алгоритма · 914B1816Ниже записан рекурсивный алгоритм F на языке Python. def F(n): if n > 0: F(n - 4) F(n // 2) print(n) Запишите…Порядок вывода рекурсивного алгоритма · 933635
Нужен репетитор по информатике?
Посмотрите репетиторов, которые ведут занятия в Precettore, или оставьте заявку — подберём сами.
Готовьтесь к ЕГЭ по информатике в Precettore
Варианты с автопроверкой, домашние задания от репетитора, онлайн-доска и разбор ошибок — в одном кабинете. Регистрация бесплатная.