Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program zakaz_17_02_2021;
- {$APPTYPE CONSOLE}
- {$R *.res}
- uses
- SysUtils;
- var
- Str: String;
- N, i, NTemp, iTemp, QuantityOfElementsToAdd: Integer;
- IsCorrect: Boolean;
- begin
- write('Введите число n: ');
- repeat
- try
- readln(N);
- IsCorrect := True;
- except
- IsCorrect := False;
- end;
- if (N < 1) or (N > 100) then
- IsCorrect := False;
- if not IsCorrect then
- write('Ошибка. Введите число от 1 до 1000: ');
- until IsCorrect;
- writeln('Введите последовательность из ', N, ' символов: ');
- repeat
- readln(Str);
- Str := Str.Trim;
- if Length(Str) <> N then
- begin
- IsCorrect := False;
- writeln('Вы ввели последовательность из ', Length(Str),
- ' символов. Введите последовательность из ', N,
- ' символов: ');
- end
- else
- IsCorrect := True;
- until IsCorrect;
- QuantityOfElementsToAdd := N - 1;
- for i := 1 to N do
- begin
- if Str[N] = Str[i] then
- begin
- NTemp := N;
- iTemp := i;
- while (Str[NTemp] = Str[iTemp]) and (NTemp - iTemp > 1) do
- begin
- dec(NTemp);
- inc(iTemp);
- end;
- if (iTemp = NTemp) then
- begin
- QuantityOfElementsToAdd := 2 * iTemp - N - 1;
- break
- end;
- if (NTemp - iTemp = 1) and (Str[NTemp] = Str[iTemp]) then
- begin
- QuantityOfElementsToAdd := 2 * iTemp - N;
- break
- end;
- end;
- end;
- for i := QuantityOfElementsToAdd downto 1 do
- Str := Str + Str[i];
- writeln('Ответ: ', Str);
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment