Рекурсивный алгоритм.
Найти сумму чисел, полученных при вызове F(1).
Ответ: 530.
Объясните принцип решения, прошу.

Трассировка вызовов, печатаемых значений и подсчет суммы

var
  s:integer;

procedure F(n:integer);
begin
  Write( F(,n,) );
  Write(n, ); s:=s+n;
  if n<6 then begin
    Write(n); s:=s+n;
    F(n+1);
    F(n+2);
    F(2*n)
  end
end;

begin
  s:=0;
  F(1);
  Writeln(#13#10,s)
end.

Результат выполнения программы:
 F(1) 1 1 F(2) 2 2 F(3) 3 3 F(4) 4 4 F(5) 5 5 F(6) 6  F(7) 7  F(10) 10  F(6) 6  F(8) 8  F(5) 5 5 F(6) 6  F(7) 7  F(10) 10  F(6) 6  F(4) 4 4 F(5) 5 5 F(6) 6  F(7) 7  F(10) 10  F(6) 6  F(8) 8  F(4) 4 4 F(5) 5 5 F(6) 6  F(7) 7  F(10) 10  F(6) 6  F(8) 8  F(3) 3 3 F(4) 4 4 F(5) 5 5 F(6) 6  F(7) 7  F(10) 10  F(6) 6  F(8) 8  F(5) 5 5 F(6) 6  F(7) 7  F(10) 10  F(6) 6  F(2) 2 2 F(3) 3 3 F(4) 4 4 F(5) 5 5 F(6) 6  F(7) 7  F(10) 10  F(6) 6  F(8) 8  F(5) 5 5 F(6) 6  F(7) 7  F(10) 10  F(6) 6  F(4) 4 4 F(5) 5 5 F(6) 6  F(7) 7  F(10) 10  F(6) 6  F(8) 8  F(4) 4 4 F(5) 5 5 F(6) 6  F(7) 7  F(10) 10  F(6) 6  F(8) 8
530


Оцени ответ
Подпишись на наш канал в телеграм. Там мы даём ещё больше полезной информации для школьников!

Загрузить картинку