Задать вопрос
17 мая, 03:41

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

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) ?

+1
Ответы (1)
  1. 17 мая, 05:23
    0
    Дурацкая по своей трудоемкости задача, если делать её вручную.

    А если написать полную программу и вставить туда счетчик вызовов 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.
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Дан рекурсивный алгоритм: procedure F (n: integer) ; begin writeln ('*') ; if n > 0 then begin F (n-3) ; F (n-2) ; F (n div 2) ; F (n div ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы