Задание 16 ЕГЭ по информатике · 2778CC
Количество звёздочек при взаимной рекурсииПовышеннаяКЭС 3.7КЭС 3.16
Ниже приведены две рекурсивные функции F и G на языке Python.
Сколько символов «звёздочка» будет напечатано на экране при выполнении вызова F(12)?
def F(n):
if n > 0:
G(n - 2)
def G(n):
print("*")
if n > 1:
F(n - 1)Сколько символов «звёздочка» будет напечатано на экране при выполнении вызова F(12)?
Показать ответ
4
Подсказки (3)
- Проследите цепочку рекурсивных вызовов, начиная с F(12). В каком случае функция G печатает звёздочку?
- Каждый вызов F(n) при n>0 вызывает G(n−2), а каждый вызов G(n) печатает одну звёздочку и при n>1 вызывает F(n−1).
- Цепочка имеет вид F(12)→G(10)→F(9)→G(7)→F(6)→G(4)→F(3)→G(1). Функция G вызывается 4 раза.
Решение
1. Вызов F(12) удовлетворяет условию n>0, поэтому вызывается G(10). F(12)→G(10) 2. Функция G(10) печатает одну звёздочку и вызывает F(9). G(10)→F(9) 3. Далее рекурсивные вызовы продолжаются по цепочке: F(9)→G(7)→F(6)→G(4)→F(3)→G(1). 4. Функция G вызывается при аргументах 10, 7, 4 и 1. Каждый такой вызов печатает одну звёздочку. После G(1) новый вызов F не выполняется, так как условие n>1 ложно. 5. Количество напечатанных символов равно числу вызовов функции G. 4⋅1=4
Частые ошибки
- Учитывать вызовы функции F как напечатанные символы.
- Продолжать рекурсию после вызова G(1), хотя условие n > 1 ложно.
- Ошибочно считать, что G печатает символ только при n > 1.
Источник: Открытый банк ФИПИ
Похожие задания
16Ниже приведены две рекурсивные функции F и G на языке Python. def F(n): if n > 0: G(n - 3) def G(n)…Количество звёздочек при взаимной рекурсии · 0D4EB516Ниже приведены две рекурсивные функции F и G на языке Python. def F(n): if n > 0: G(n - 1) def G(n)…Количество звёздочек при взаимной рекурсии · 4ADA7816Ниже приведены две рекурсивные функции F и G на языке Python. def F(n): if n > 0: G(n - 1) def G(n)…Количество звёздочек при взаимной рекурсии · 9DAE4016Ниже приведены две рекурсивные функции F и G на языке Python. def F(n): if n > 0: G(n - 2) def G(n)…Количество звёздочек при взаимной рекурсии · A2BE0016Ниже приведены две рекурсивные функции F и G на языке Python. def F(n): if n > 0: G(n - 1) def G(n)…Количество звёздочек при взаимной рекурсии · C0539216Алгоритм вычисления значения функции F(n) , где n – целое число, задан следующими соотношениями: F(n) = 1 при…Значение функции или выражения
Нужен репетитор по информатике?
Посмотрите репетиторов, которые ведут занятия в Precettore, или оставьте заявку — подберём сами.
Готовьтесь к ЕГЭ по информатике в Precettore
Варианты с автопроверкой, домашние задания от репетитора, онлайн-доска и разбор ошибок — в одном кабинете. Регистрация бесплатная.