1. Главная
  2. Библиотека
  3. Программирование
  4. Дан рекурсивный алгоритм: procedure F(n: integer); begin...
Решение задачи

Дан рекурсивный алгоритм: 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)?

  • Программирование

Условие:

Дан рекурсивный алгоритм:
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, больше никаких вызовов не ...

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет