Задание 16 ЕГЭ по информатике · 1D337E

Порядок вывода рекурсивного алгоритмаПовышеннаяКЭС 3.7КЭС 3.16
Ниже записан рекурсивный алгоритм F на языке Python.

def F(n):
print(n, end='')
if n >= 3:
F(n - 1)
F(n - 3)


Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(5). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.

Показать ответ
5432012
Подсказки (3)
  1. Каждый вызов сначала выводит своё значение n, а затем выполняет рекурсивные вызовы слева направо.
  2. Для n >= 3 порядок вызовов задаётся как F(n)→F(n−1)→F(n−3).
  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 подберёт репетитора и свяжется с вами.

Готовьтесь к ЕГЭ по информатике в Precettore

Варианты с автопроверкой, домашние задания от репетитора, онлайн-доска и разбор ошибок — в одном кабинете. Регистрация бесплатная.