Предмет: Информатика,
автор: AlexTarakanova
Дано целочисленный массив из n элементов. Проверить, если массив является симметричным, то в каждой из его половин изменить порядок элементов на обратный. В противном случае его половины поменять местами.
Ответы
Автор ответа:
1
PascalABC.NET 3.3.5, сборка 1650 от 01.04.2018
Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('n=');
var a:=ReadArrInteger('Вводите:',n);
var m:=n div 2;
if a.Zip(a.Reverse,(p,q)->p=q).All(t->t) then
a:=(a[:m].Reverse+a[m:].Reverse).ToArray
else
a:=a[m:]+a[:m];
a.Println
end.
Примеры
n= 8
Вводите: 1 2 3 4 4 3 2 1
4 3 2 1 1 2 3 4
n= 8
Вводите: 1 2 3 4 4 3 6 1
4 3 6 1 1 2 3 4
Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('n=');
var a:=ReadArrInteger('Вводите:',n);
var m:=n div 2;
if a.Zip(a.Reverse,(p,q)->p=q).All(t->t) then
a:=(a[:m].Reverse+a[m:].Reverse).ToArray
else
a:=a[m:]+a[:m];
a.Println
end.
Примеры
n= 8
Вводите: 1 2 3 4 4 3 2 1
4 3 2 1 1 2 3 4
n= 8
Вводите: 1 2 3 4 4 3 6 1
4 3 6 1 1 2 3 4
Похожие вопросы
Предмет: Кыргыз тили,
автор: erbolhik10
Предмет: Физика,
автор: polinavras00
Предмет: История,
автор: kutkeevarsen
Предмет: Алгебра,
автор: Сеня16873
Предмет: Алгебра,
автор: Аноним