Помогите решить задачу
я никак не могу сообразить как решить задачу.надо написать слово и добавить к нему минимальное кол-во букв чтобы получился палиндром(слово,которое читается и справа налево и слева направо одинаково). я тут немного набросал:
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
i,b,k,n:integer;
a:array[1..100] of char;
buf:array[1..100] of char;
begin
k:=0;
s:=edit1.Text;
n:=length(s);
if n>3 then
begin
for i:=1 to n do
a:=s;
for i:=1 to (n div 2) do
begin
if a<>a[n-k] then
begin
for b:=1 to n do
buf:=a[b+i-1];
a:=a[n-k];
for b:=1 to n do
a[b+i]:=buf;
k:=k+1; n:=n+1
end else k:=k+1;
end;
end;
edit1.Text:='';
for i:=0 to n*2 do
edit1.Text:=edit1.Text+a;
end;
посмотрите и хотя бы скажите правильно я начал и если нет скажите хоть способ решения
я никак не могу сообразить как решить задачу.надо написать слово и добавить к нему минимальное кол-во букв чтобы получился палиндром(слово,которое читается и справа налево и слева направо одинаково). я тут немного набросал:
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
i,b,k,n:integer;
a:array[1..100] of char;
buf:array[1..100] of char;
begin
k:=0;
s:=edit1.Text;
n:=length(s);
if n>3 then
begin
for i:=1 to n do
a:=s;
for i:=1 to (n div 2) do
begin
if a<>a[n-k] then
begin
for b:=1 to n do
buf:=a[b+i-1];
a:=a[n-k];
for b:=1 to n do
a[b+i]:=buf;
k:=k+1; n:=n+1
end else k:=k+1;
end;
end;
edit1.Text:='';
for i:=0 to n*2 do
edit1.Text:=edit1.Text+a;
end;
посмотрите и хотя бы скажите правильно я начал и если нет скажите хоть способ решения