
Эмилий
6 год назад
Составить программу нахождения максимального значения среди попарных сумм тех элементов массива длины 30, которые находятся на одинаковом расстоянии от его концов (т.е. первый элемент складывается с последним, второй с предпоследним и т.д.). Упорядочить его методом перебора. Элементы массива принадлежат отрезку [-15. 15].
(Помогите пожалуйста, очень нужно.)
ОТВЕТЫ

Апурин
Jul 21, 2019
// 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 sgt;mx then mx:=s
end;
Writeln(Максимальная из сумм сходящихся пар: ,mx);
// сортировка выбором
var j:=n-1;
while jgt;0 do begin
mx:=a[0];
var imx:=0;
for var i:=1 to j do
if a[i]gt;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 sgt;mx then mx:=s
end;
Writeln(Максимальная из сумм сходящихся пар: ,mx);
// сортировка выбором
var j:=n-1;
while jgt;0 do begin
mx:=a[0];
var imx:=0;
for var i:=1 to j do
if a[i]gt;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
262
Смежные вопросы: