780613
18.02.2022 19:45

Дан рекурсивный алгоритм:
def F( n ):
print( '*' )
if n > 0:
F( n-2 )
F( n // 2 )
Сколько символов "звездочка" будет напечатано на экране при выполнении вызова F(7)?

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
aosch2k2
15.04.2020 12:30

gfegev

Объяснение:

0,0(0 оценок)
Ответ:
meladse1105
15.04.2020 12:30

Объяснение:

подумай овррклуокоокококоокок

0,0(0 оценок)
Ответ:
шуберт678
09.01.2024 12:40
Чтобы решить эту задачу, давайте разберемся в работе данного рекурсивного алгоритма по шагам.

Для начала, вызываем функцию F(7).

Шаг 1:
Печатаем символ "*".
Теперь n = 7.
Вызываем функцию F(7-2), то есть F(5).

Шаг 2:
Печатаем символ "*".
Теперь n = 5.
Вызываем функцию F(5-2), то есть F(3).

Шаг 3:
Печатаем символ "*".
Теперь n = 3.
Вызываем функцию F(3-2), то есть F(1).

Шаг 4:
Печатаем символ "*".
Теперь n = 1.
Вызываем функцию F(1-2), то есть F(-1).

Шаг 5:
n = -1 <= 0, поэтому выходим из функции.

При этом, символ "*" был напечатан 4 раза.

Теперь возвращаемся к последнему невыполненному вызову функции F(1).

Шаг 5 (повтор):
n = 1 // 2, поэтому вызываем функцию F(0).

Шаг 6:
Печатаем символ "*".
Теперь n = 0.
Выходим из функции F(0).

Теперь возвращаемся к предыдущему невыполненному вызову функции F(1).

Шаг 6 (повтор):
n = 1 // 2, поэтому вызываем функцию F(0).

Шаг 7:
Печатаем символ "*".
Теперь n = 0.
Выходим из функции F(0).

Теперь возвращаемся к предыдущему невыполненному вызову функции F(3).

Шаг 4 (повтор):
n = 3 // 2, поэтому вызываем функцию F(1).

Шаг 5:
Печатаем символ "*".
Теперь n = 1.
Вызываем функцию F(1-2), то есть F(-1).

Шаг 5 (повтор):
n = -1 <= 0, поэтому выходим из функции.

Теперь возвращаемся к предыдущему невыполненному вызову функции F(3).

Шаг 5 (повтор):
n = 3 // 2, поэтому вызываем функцию F(1).

Шаг 6:
Печатаем символ "*".
Теперь n = 1.
Вызываем функцию F(1-2), то есть F(-1).

Шаг 7:
n = -1 <= 0, поэтому выходим из функции.

Теперь возвращаемся к предыдущему невыполненному вызову функции F(5).

Шаг 6 (повтор):
n = 5 - 2, поэтому вызываем функцию F(3).

...

Продолжаем подобным образом до завершения алгоритма.

Таким образом, нам нужно посчитать, сколько раз был напечатан символ "*".
Обращаясь к нашим шагам, мы видим, что символ "*" был напечатан 4 раза.

Итак, при выполнении вызова F(7) будет напечатано 4 символа "звездочка".
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота