Информатика c++. ! //необходимо найти "почти-палиндромы" //будем считать "почти-палиндромом" такой палиндром, симметрия в котором нарушена не более чем в одном символе. например: //acbaa - "почти-палиндром", aabbaa - палиндром , acbeq - не палиндром и не "почти-палиндром". // //входные данные: //на вход программе сначала подается число n (натуральное). //затем следует n непустых строк. //выходные данные: //программа должна вывести все введенные палиндромы и "почти-палиндромы". //example: //input: //5 //adam aba acbaa abba qwerty //output //aba acbaa abba
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
var t:=a.Partition((x,i)->i.IsEven);
var s:=t[0].Interleave(t[1].OrderByDescending(x->x));
if a.Length.IsOdd then a:=s.ToArray+Arr(a.Last)
else a:=s.ToArray;
a.Println
end.
Примеры
n= 14
42 -8 41 -26 -28 -44 -27 -24 13 -20 16 19 37 -26
42 19 41 -8 -28 -20 -27 -24 13 -26 16 -26 37 -44
n= 15
-21 41 32 8 -23 23 23 9 35 45 -42 37 -11 -8 22
-21 45 32 41 -23 37 23 23 35 9 -42 8 -11 -8 22
// PascalABC.NET 3.2, сборка 1437 от 03.05.2017
// Внимание! Если программа не работает, обновите версию!
unit garnaga;
interface
function LC(r:real):real;
function SC(r:real):real;
function RC(x,y:real):real;
implementation
function LC(r:real):=2*pi*r;
function SC(r:real):=pi*r*r;
function RC(x,y:real):=sqrt(x*x+y*y);
end.
2. Основная программа
uses garnaga;
begin
var x,y,r:real;
Writeln('Введите X, T, R: '); Read(x,y,r);
Writeln('Длина окружности ',LC(r):0:5);
Writeln('Площадь круга ',SC(r):0:5);
Writeln('Расстояние от центра до начала координат ',RC(x,y):0:5);
end.
3. Пример работы
Введите X, T, R:
3.5 -6.7 20
Длина окружности 125.66371
Площадь круга 1256.63706
Расстояние от центра до начала координат 7.55910