Номер Гл.1 Т 6

ГДЗ по информатике 9 класс, Босова 2023, страница 79

Гл. Т Рекурсивный вызов

Дан текст процедуры на двух языках программирования:

Паскаль Python
procedure f(n: integer);
begin
write('*');
if n > 1 then f(n div 2)
end;
def f(n):
print('*')
if n > 1: f(n//2)

Сколько звёздочек будет выведено на экран в результате вызова f(5)?
а) 1
б) 2
в) 3
г) 5

Решение

При каждом вызове сначала выводится одна звёздочка. Затем, если аргумент больше , процедура вызывается снова с целой частью от деления аргумента на . Это рекурсия: подпрограмма вызывает саму себя.

Вызов Вывод Проверка и следующий вызов
f() * , поэтому // = , вызывается f()
f() * , поэтому // = , вызывается f()
f() * — неверно, новых вызовов нет

Итого выполнено три вызова и каждый вывел одну звёздочку: . В Python звёздочки окажутся на отдельных строках, но их количество то же.

Ответ

в) звёздочки.

Помогло?

Нет твоего задания?Сфоткай, и ДЗмэн решит за пару секунд.

Решить по фото