Site icon Информатика Эксперт

Е16.5 Сколько символов «звездочка» будет напечатано на экране при выполнении вызова F(5)?

Сколько символов «звездочка» будет напечатано на экране при выполнении вызова F(5)?

Дан рекурсивный алгоритм:

Паскаль Python
procedure F(n: integer);
begin
writeln(‘*’);
if n > 0 then begin
F(n-2);
F(n div 2);
F(n div 2);
end
end;
void F(int n)
{
printf(″*″);
if (n > 0) {
F(n-2);
F(n / 2);
F(n / 2);
}
}

 

Сколько символов «звездочка» будет напечатано на экране при выполнении вызова F(5)?

Ответ:

 

Решение:

F5 (33+1=34) => F3 (13), F2 (10), F2 (10)

F3 (12+1) => F1 (4), F1 (4), F1 (4)

F2 (9+1) => F0 (1), F1 (4), F1 (4)

F1 (3+1) => F-1 (1), F0 (1), F0 (1)

Ответ: 34

Exit mobile version