
Вопрос задан 07.05.2018 в 22:30.
Предмет Информатика.
Спрашивает Бартош Наташа.
Дан рекурсивный алгоритм: 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.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili