Задание 16 ЕГЭ по информатике · 1C457A
Порядок вывода рекурсивного алгоритмаПовышеннаяКЭС 3.7КЭС 3.16
Ниже записан рекурсивный алгоритм F на языке Python.
Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(6). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
def F(n):
print(n, end='')
if n >= 4:
F(n - 3)
F(n - 1)Запишите подряд без пробелов и разделителей все числа, которые будут выведены на экран при выполнении вызова F(6). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.
Показать ответ
6352413
Подсказки (3)
- Для каждого вызова сначала запишите его параметр, а затем проследите рекурсивные вызовы слева направо.
- Вызов с n<4 только выводит число и не порождает новых вызовов.
- Цепочка вызовов: F(6)→F(3),F(5); F(5)→F(2),F(4); F(4)→F(1),F(3). Получается последовательность 6,3,5,2,4,1,3.
Решение
1. При вызове F(6) сначала выводится 6. Так как 6≥4, выполняется вызов F(3), который выводит 3 и завершается. F(6):6→F(3):3 2. Затем выполняется вызов F(5), который выводит 5. Он вызывает F(2) и F(4) в этом порядке. F(5):5→F(2):2, F(4):4 3. Вызов F(4) после вывода 4 вызывает F(1), выводящий 1, а затем F(3), выводящий 3. F(4):4→F(1):1, F(3):3 4. Объединяем числа в порядке их вывода без пробелов и разделителей. 6,3,5,2,4,1,3⇒6352413
Частые ошибки
- Меняют местами рекурсивные вызовы F(n - 3) и F(n - 1).
- Продолжают рекурсию для значений n < 4.
- Забывают, что число выводится до выполнения рекурсивных вызовов.
Источник: Открытый банк ФИПИ
Похожие задания
16Ниже записан рекурсивный алгоритм 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 >= 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): 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
Варианты с автопроверкой, домашние задания от репетитора, онлайн-доска и разбор ошибок — в одном кабинете. Регистрация бесплатная.