1. Главная
  2. Библиотека
  3. Программирование
  4. Дан рекурсивный алгоритм: procedure F(n: integer); begin writeln('*'); if n > 0 then begin F(n-3); F(n-2); F(n div 2); F(n...

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

Условие:

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

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

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

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