В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
yulyaahunova1
yulyaahunova1
02.06.2022 14:40 •  Информатика

Дан рекурсивный алгоритм: 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)?

Показать ответ
Ответ:
1Gamzatik1
1Gamzatik1
19.07.2020 18:12
Дурацкая по своей трудоемкости задача, если делать её вручную.
А если написать полную программу и вставить туда счетчик вызовов 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 Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота