Составить программу нахождения максимального значения среди попарных сумм тех элементов массива длины 30, которые находятся на одинаковом расстоянии от его концов (т.е. первый элемент складывается с последним, второй с предпоследним и т.д.). Упорядочить его методом перебора. Элементы массива принадлежат отрезку [-15. 15].
(Помогите пожалуйста, очень нужно.)
Ответы
Ответ дал:
0
// PascalABC.NET 3.2, сборка 1346 от 25.11.2016
// Внимание! Если программа не работает, обновите её версию!
begin
var n:=30;
var a:=ArrRandom(n,-15,15); a.Println;
var mx:=a[0]+a[n-1];
for var i:=2 to (n-1) div 2 do begin
var s:=a[i]+a[n-i-1];
if s>mx then mx:=s
end;
Writeln('Максимальная из сумм сходящихся пар: ',mx);
// сортировка выбором
var j:=n-1;
while j>0 do begin
mx:=a[0];
var imx:=0;
for var i:=1 to j do
if a[i]>mx then begin mx:=a[i]; imx:=i end;
a[imx]:=a[j];
a[j]:=mx;
j-=1
end;
a.Println
end.
Пример
-14 9 1 -14 -5 14 -15 -15 -1 -4 -8 -9 1 -12 -11 -3 9 -1 -9 -9 -1 -8 15 -8 5 -13 15 6 9 11
Максимальная из сумм сходящихся пар: 19
-15 -15 -14 -14 -13 -12 -11 -9 -9 -9 -8 -8 -8 -5 -4 -3 -1 -1 -1 1 1 5 6 9 9 9 11 14 15 15
// Внимание! Если программа не работает, обновите её версию!
begin
var n:=30;
var a:=ArrRandom(n,-15,15); a.Println;
var mx:=a[0]+a[n-1];
for var i:=2 to (n-1) div 2 do begin
var s:=a[i]+a[n-i-1];
if s>mx then mx:=s
end;
Writeln('Максимальная из сумм сходящихся пар: ',mx);
// сортировка выбором
var j:=n-1;
while j>0 do begin
mx:=a[0];
var imx:=0;
for var i:=1 to j do
if a[i]>mx then begin mx:=a[i]; imx:=i end;
a[imx]:=a[j];
a[j]:=mx;
j-=1
end;
a.Println
end.
Пример
-14 9 1 -14 -5 14 -15 -15 -1 -4 -8 -9 1 -12 -11 -3 9 -1 -9 -9 -1 -8 15 -8 5 -13 15 6 9 11
Максимальная из сумм сходящихся пар: 19
-15 -15 -14 -14 -13 -12 -11 -9 -9 -9 -8 -8 -8 -5 -4 -3 -1 -1 -1 1 1 5 6 9 9 9 11 14 15 15
Ответ дал:
0
спасибо
Ответ дал:
0
Пожалуйста
Вас заинтересует
1 год назад
1 год назад
6 лет назад
6 лет назад
8 лет назад
8 лет назад