Задание 16 ЕГЭ по информатике · 4ABC65
Порядок вывода рекурсивного алгоритмаПовышеннаяКЭС 3.7КЭС 3.16
Ниже записан рекурсивный алгоритм F на языке Python.
Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(7). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
def F(n):
if n > 0:
F(n - 3)
print(n)
F(n // 2)Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(7). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
Показать ответ
1421731
Подсказки (3)
- В каком порядке выполняются три действия внутри условия: рекурсивный вызов F(n−3), вывод n, затем вызов F(n//2)?
- Вызовы с аргументом n≤0 ничего не выводят. Для каждого положительного аргумента сначала полностью проследите вызов F(n−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
Варианты с автопроверкой, домашние задания от репетитора, онлайн-доска и разбор ошибок — в одном кабинете. Регистрация бесплатная.