Вопрос:

Какой результат получится после работы программы? program rec; var k: integer; function P(n:integer):integer; begin if n=1 then P:=1 else P:=P(n-1)+3 end; begin read (k); writeln (P(k)) end. Вводится с клавиатуры: 7.

Ответ:

Рассмотрим рекурсивную функцию P(n). Если n=1, то функция возвращает 1. В противном случае она возвращает P(n-1) + 3.

В основной программе считывается значение k с клавиатуры, а затем вызывается функция P(k). В данном случае k = 7.

Вычислим P(7), разворачивая рекурсию:

P(7) = P(6) + 3

P(6) = P(5) + 3

P(5) = P(4) + 3

P(4) = P(3) + 3

P(3) = P(2) + 3

P(2) = P(1) + 3

P(1) = 1

Теперь подставим значения в обратном порядке:

P(2) = 1 + 3 = 4

P(3) = 4 + 3 = 7

P(4) = 7 + 3 = 10

P(5) = 10 + 3 = 13

P(6) = 13 + 3 = 16

P(7) = 16 + 3 = 19

Таким образом, P(7) = 19.

Ответ: 19

Смотреть решения всех заданий с фото
Подать жалобу Правообладателю

Похожие