Дан рекурсивный алгоритм: 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(n), то окажется, что для вызова F(6) процедура будет вызвана 97 раз. При каждом вызове выводится звездочка, поэтому их будет выведено тоже 97.
Проверка выполнялась по следующей программе: var k:integer;
procedure F(n: integer); begin writeln('*'); k:=k+1; if n > 0 then begin F(n - 3); F(n - 2); F(n div 2); F(n div 2); end end;
begin k:=0; F(6); Writeln(k) end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку