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

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

def F(n):
if n > 0:
F(n - 3)
print(n)
F(n // 2)


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

Показать ответ
1421731
Подсказки (3)
  1. В каком порядке выполняются три действия внутри условия: рекурсивный вызов F(n−3), вывод n, затем вызов F(n//2)?
  2. Вызовы с аргументом n≤0 ничего не выводят. Для каждого положительного аргумента сначала полностью проследите вызов F(n−3).
  3. Получаются последовательности: F(1)→1, F(2)→21, F(4)→1421, F(3)→31. Объедините результаты вызова F(7).
Решение
1. Для n≤0 функция завершается без вывода. Вызов F(1) сначала обращается к F(−2), затем выводит 1 и вызывает F(0), поэтому результатом является 1.
F(1)→1

2. Вызов F(2) сначала обращается к F(−1), выводит 2, затем вызывает F(1).
F(2)→21

3. Вызов F(4) сначала выполняет F(1), выводит 4, затем выполняет F(2).
F(4)→1 4 2 1

4. Вызов F(3) сначала выполняет F(0), выводит 3, затем выполняет F(1).
F(3)→3 1

5. Вызов F(7) сначала выполняет F(4), выводит 7, затем выполняет F(3).
F(7)→1 4 2 1 7 3 1
Частые ошибки
  • Выводят число n до выполнения вызова F(n−3).
  • Учитывают вызовы с аргументом n≤0, хотя они ничего не выводят.
  • Забывают второй рекурсивный вызов F(n//2).

Источник: Открытый банк ФИПИ

Похожие задания

16Ниже записан рекурсивный алгоритм 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 - 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): 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) Запишите…Порядок вывода рекурсивного алгоритма · 82EE49

Нужен репетитор по информатике?

Посмотрите репетиторов, которые ведут занятия в Precettore, или оставьте заявку — подберём сами.

Репетиторы по информатике

Подбор репетитора

Напишите, что нужно, — команда Precettore подберёт репетитора и свяжется с вами.

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

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