raremani
01.06.2021 06:19

36 с сайта к.ю.полякова дан рекурсивный алгоритм: procedure f(n: integer); begin writeln('*'); if n > 0 then begin writeln('*'); f(n-2); f(n div 2); end end; сколько символов "звездочка" будет напечатано на экране при выполнении вызова f(7)? как решать эту методом дерева? и вообще, возможно ли это?

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
dibalabagdasar
06.10.2020 01:49
Да это самый удобный и наглядный Рисуем дерево вызовов. Понимаем, что если функция вызвалась с числом <=0, то печатается одна звезда, затем на этой ветке рекурсия останавливается. Если же функция вызвалась с параметром > 0, То печатается 2 звезды и возникают новые две ветки рекурсивных вызовов. Прилагаю рисунок, красными точками отмечены звезды, печатающиеся при конкретном вызове функции. ответо будет являться общее количество таких точек. Важно понять, что при наличии идентичных веток можно посчитать результат для такой ветки один раз и использовать его для других таких же.

ответ: 31.
36 с сайта к.ю.полякова дан рекурсивный алгоритм: procedure f(n: integer); begin writeln('*'); if n
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота