М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
manukansona
manukansona
21.04.2023 01:24 •  Информатика

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

👇
Ответ:
Турик2087
Турик2087
21.04.2023

gfegev

Объяснение:

4,5(57 оценок)
Ответ:
nadj5555
nadj5555
21.04.2023

Объяснение:

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

4,8(82 оценок)
Ответ:
Lidiamazyr
Lidiamazyr
21.04.2023
Чтобы решить эту задачу, давайте разберемся в работе данного рекурсивного алгоритма по шагам.

Для начала, вызываем функцию 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 символа "звездочка".
4,4(76 оценок)
Проверить ответ в нейросети
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ