1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
(Сам и контр)
Задание 3 Вариант 3 Самостоятельная работа 6 ГДЗ Рабочая тетрадь Босова 11 класс (Информатика)
Босова, Босова, Аквилянов
11 класс
Класс
11
Предмет
Информатика
Автор
Босова, Босова, Аквилянов

Задание 3 Вариант 3 Самостоятельная работа 6 ГДЗ Рабочая тетрадь Босова 11 класс (Информатика)

Задача
  1. Дан рекурсивный алгоритм $$F$$. Сколько символов «звёздочка» будет напечатано на экране при выполнении вызова $$F(5)$$?
    procedure $$F(n:\ integer)$$;
    begin
      writeln (‘*’);
      if $$n>0$$ then begin
        $$F(n-2)$$;
        $$F(n\ \operatorname{div}\ 2)$$;
        $$F(n\ \operatorname{div}\ 2)$$;
      end
    end.
Подробный ответ

Обозначим через $$F(n)$$ количество символов *, которые будут напечатаны при вызове процедуры $$F(n)$$.

По условию каждый вызов печатает одну звёздочку, а если $$n > 0$$, то дополнительно выполняются три рекурсивных вызова:

$$F(n)=1+F(n-2)+2\cdot F\left(\left\lfloor \frac{n}{2}\right\rfloor\right)$$

Вычислим последовательно:

$$F(1)=1+F(-1)+2F(0)$$

Так как при $$n \le 0$$ рекурсия не продолжается, получаем:

$$F(0)=1,\quad F(-1)=1$$

Тогда

$$F(1)=1+1+2\cdot 1=4$$

$$F(2)=1+F(0)+2F(1)=1+1+2\cdot 4=10$$

$$F(3)=1+F(1)+2F(1)=1+4+2\cdot 4=13$$

$$F(4)=1+F(2)+2F(2)=1+10+2\cdot 10=31$$

$$F(5)=1+F(3)+2F(2)=1+13+2\cdot 10=34$$

Ответ

34



Общая оценка
4.3 / 5
Другие учебники
Другие предметы