• Предмет: Информатика
  • Автор: AlexTarakanova
  • Вопрос задан 8 лет назад

Дано целочисленный массив из n элементов. Проверить, если массив является симметричным, то в каждой из его половин изменить порядок элементов на обратный. В противном случае его половины поменять местами.

Ответы

Ответ дал: Аноним
0
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
Похожие вопросы