Дан рекурсивный алгоритм: procedure F(n: integer); begin writeln('*'); if n>0 then begin...

0 голосов
450 просмотров

Дан рекурсивный алгоритм:
procedure F(n: integer);
begin
writeln('*');
if n>0 then begin
writeln('*');
F(n-2);
F(n div 2);
F(n div 2);
end
end; Сколько символов "звездочка" будет напечатано на экране при выполнении вызова F(7)?


Информатика (15 баллов) | 450 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

20 звезд.Можно легко проверить,переделав алгоритм.
var s:integer;
procedure F(n: integer);
begin
writeln('*');
if n>0 then begin
writeln('*');
s:=s+1;
F(n-2);
F(n div 2);
F(n div 2);
end;
end;
begin
f(7);
writeln(s);
end.

(58 баллов)