Вот полная трассировка вызовов при вычислении F(6):
Вызов F(6) Вызов F(5) Вызов F(4) Вызов F(3) Вызов F(2) Выход из F со значением 2 Вызов G(1) Выход из G со значением 2 Выход из F со значением 4 Вызов G(2) Выход из G со значением 3 Выход из F со значением 7 Вызов G(3) Вызов G(2) Выход из G со значением 3 Вызов F(1) Выход из F со значением 1 Выход из G со значением 4 Выход из F со значением 11 Вызов G(4) Вызов G(3) Вызов G(2) Выход из G со значением 3 Вызов F(1) Выход из F со значением 1 Выход из G со значением 4 Вызов F(2) Выход из F со значением 2 Выход из G со значением 6 Выход из F со значением 17 17 - это ответ.
//PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016) var a,n,i,min,max:integer; begin min:=maxint; max:=-maxint; write('Число элементов последовательности '); readln(n); for i:=1 to n do begin a:=random(61)-30; if a>max then max:=a; if a<min then min:=a; write(a:4); end; writeln; if max<=(min+25) then writeln ('максимальное ',max ,' превышает минимальное ',min,' не более чем на 25') else writeln ('максимальное ',max ,' превышает минимальное ',min,' более чем на 25'); end.
Тест №1 Число элементов последовательности 3 -9 2 10 максимальное 10 превышает минимальное -9 не более чем на 25
Тест №2 Число элементов последовательности 5 10 -17 13 26 -2 максимальное 26 превышает минимальное -17 более чем на 25
Вызов F(6)
Вызов F(5)
Вызов F(4)
Вызов F(3)
Вызов F(2)
Выход из F со значением 2
Вызов G(1)
Выход из G со значением 2
Выход из F со значением 4
Вызов G(2)
Выход из G со значением 3
Выход из F со значением 7
Вызов G(3)
Вызов G(2)
Выход из G со значением 3
Вызов F(1)
Выход из F со значением 1
Выход из G со значением 4
Выход из F со значением 11
Вызов G(4)
Вызов G(3)
Вызов G(2)
Выход из G со значением 3
Вызов F(1)
Выход из F со значением 1
Выход из G со значением 4
Вызов F(2)
Выход из F со значением 2
Выход из G со значением 6
Выход из F со значением 17
17 - это ответ.
var a,n,i,min,max:integer;
begin
min:=maxint; max:=-maxint;
write('Число элементов последовательности ');
readln(n);
for i:=1 to n do begin
a:=random(61)-30;
if a>max then max:=a;
if a<min then min:=a;
write(a:4);
end;
writeln;
if max<=(min+25) then writeln ('максимальное ',max ,' превышает минимальное ',min,' не более чем на 25')
else writeln ('максимальное ',max ,' превышает минимальное ',min,' более чем на 25');
end.
Тест №1
Число элементов последовательности 3
-9 2 10
максимальное 10 превышает минимальное -9 не более чем на 25
Тест №2
Число элементов последовательности 5
10 -17 13 26 -2
максимальное 26 превышает минимальное -17 более чем на 25