Условие:
Дан рекурсивный алгоритм:
procedure F(n: integer);
begin
writeln('*');
if n > 0 then begin
F(n-3);
F(n-2);
F(n div 2);
F(n div 2);
end
end;
Сколько символов "звездочка" будет напечатано на экране при выполнении вызова F(6)?
Решение:
Чтобы определить, сколько символов звездочка будет напечатано на экране при выполнении вызова F(6), давайте проанализируем рекурсивный алгоритм шаг за шагом. 1. Начальный вызов: F(6) - Печатаем * (1 звёздочка) - Поскольку n 0, выполняем следующие вызовы: - F(6 - 3) = F(3) - F(6 - 2) = F(4) - F(6 div 2) = F(3) - F(6 div 2) = F(3) 2. Вызов F(3): - Печатаем * (1 звёздочка) - Поскольку n 0, выполняем следующие вызовы: - F(3 - 3) = F(0) - F(3 - 2) = F(1) - F(3 div 2) = F(1) - F(3 div 2) = F(1) 3. Вызов F(0): - Печатаем * (1 звёздочка) - Поскольку n = 0, больше никаких вызовов не ...
