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