Задать вопрос
14 апреля, 10:49

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

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. 14 апреля, 13:03
    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 2); ...» по предмету 📙 Информатика, а если ответа нет или никто не дал верного ответа, то воспользуйся поиском и попробуй найти ответ среди похожих вопросов.
Искать другие ответы