Некоторый ал­го­ритм из одной це­поч­ки символов по­лу­ча­ет новую це­поч­ку следующим...

0 голосов
83 просмотров

Некоторый ал­го­ритм из одной це­поч­ки символов по­лу­ча­ет новую це­поч­ку следующим образом. Сна­ча­ла вычисляется длина ис­ход­ной цепочки символов; если она нечётна, то дуб­ли­ру­ет­ся средний сим­вол цепочки символов, а если четна, то в на­ча­ло цепочки до­бав­ля­ет­ся буква С. В по­лу­чен­ной цепочке сим­во­лов каждая буква за­ме­ня­ет­ся буквой, сле­ду­ю­щей за ней в рус­ском алфавите (А — на Б, Б — на В и т. д., а Я — на А). По­лу­чив­ша­я­ся таким об­ра­зом цепочка яв­ля­ет­ся результатом ра­бо­ты алгоритма.
Например, если ис­ход­ной была це­поч­ка КОТ, то ре­зуль­та­том работы ал­го­рит­ма будет це­поч­ка ЛППУ, а если ис­ход­ной была це­поч­ка ВАНЯ, то ре­зуль­та­том работы ал­го­рит­ма будет це­поч­ка ТГБОА.
Дана це­поч­ка символов КОМ. Какая це­поч­ка символов получится, если к дан­ной цепочке при­ме­нить описанный ал­го­ритм дважды (т. е. при­ме­нить алгоритм к дан­ной цепочке, а затем к ре­зуль­та­ту вновь при­ме­нить алгоритм)? Рус­ский алфавит: АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ.


Информатика (12 баллов) | 83 просмотров
Дано ответов: 2
0 голосов

КОМ -> КООМ -> ЛППН
ЛППН -> СЛППН  -> ТМРРО

(3.1k баллов)
0 голосов

Результат: ТМРРО


Const abc = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯА';
Var s : String;

Function Alg(ss : String) : String;
Var i : Integer;
Begin
  If Odd(Length(ss)) then Insert(ss[(Length(ss) div 2)+1],ss,(Length(ss) div 2)+1) else ss:='С'+ss;
  For i:=1 to Length(ss) do If Pos(ss[i],abc)>0 then ss[i]:=abc[Pos(ss[i],abc)+1];
  Alg:=ss;
end;

Begin
{  Readln(s);
  Writeln(Alg(s)); }
  Writeln(Alg(Alg('КОМ')));
end.

(5.1k баллов)