Professional Documents
Culture Documents
1. Cho trước một xâu ký tự, kiểm tra xem xâu đó có đối xứng hay không?
2. Cho trước một dãy số nguyên, kiểm tra xem dãy đã cho có đối xứng hay
không?
3. Cho trước một số nguyên, kiểm tra xem số đã cho có đối xứng hay không?
4. Cho một dãy số nguyên. Hãy đọc ra các số đối xứng có trong dãy.
5. Đọc ra tất cả các số nguyên đối xứng có m chữ số (m<=6).
6. Cho trước một số nguyên. Hãy kiểm tra xem số đó có đối xứng nhị phân hay
không?
7. In ra tất cả các số vừa đối xứng thập phân, vừa đối xứng nhị phân trong đoạn
n tới m.
Bài 8. Đối xứng gương
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Một số chữ cái có các tính chất đặc biệt như sau:
a) Đối xứng gương qua trục đối xứng đứng, ví dụ chữ cái A có tính chất như vậy. Ngoài chữ A còn có các ký tự
"H","I","M","O","T","U","V","W","X","Y".
b) Đối xứng gương qua trục đối xứng ngang, ví dụ chữ cái B có tính chất như vậy. Cùng với B còn có các ký tự
"C","D","E","H","I", "K","O","X".
c) Không đổi khi xoay ký tự 1800, ví dụ chữ S. Các ký tự "H","I","N","O","X","Z" cũng có tính chất này.
Một xâu có tính chất đặc biệt nếu như mỗi ký tự của xâu đều có tính chất đặc biệt đó.
Yêu cầu: Với xâu cho trước không quá 250 ký tự, hãy xác định xâu có tính chất a), b) hay c) hay không?
Dữ liệu vào: Cho trong file DOIXUNG.INP, gồm một dòng chứa một xâu kí tự.
Dữ liệu ra: Xuất ra file văn bản DOIXUNG.OUT theo định dạng sau: Nếu xâu đã cho không có tính chất đặc
biệt, ghi NO. Nếu xâu đã cho có tính chất đặc biệt, thì:
DOIXUNG.IN
DOIXUNG.INP DOIXUNG.OUT DOIXUNG.OUT
P
YES
HELLO NO OTO
1
9, Cho trước một xâu ký tự, hãy đọc ra các xâu con đối xứng dài nhất.
10. Cho một dãy số nguyên, Hãy đọc ra tất cả các đoạn con liên tiếp đối xứng
dài nhất.
Tư tưởng thuật toán và lời giải tham khảo
Bài 1: Tư tưởng thuật toán:
- Xây dựng hàm kiểm tra đối xứng
- Gọi hàm kiểm tra, rồi kết luận.
{var st:string;
f,g:text;
function ktdx(s:string):boolean;
var k:integer;
begin
ktdx:=false;
ktdx:=true;
end;
begin
assign(f,'bl.inp');reset(f);
assign(g,'bl.out'); rewrite(g);
read(f,st);
else
Write(g,'KHONG');
close(f);
Close(g);
End. }
n,i,d:longint; w:string;
f,g:text;
begin
assign(f,'bl.inp');reset(f);
assign(g,'bl.out'); rewrite(g);
readln(f,n);
for i:=1 to n do
read(f,a[i]);
for i:=1 to n do
else write(g,'KHONG');
close(f);
close(g);
end. }
n,i,d:longint; w:string;
f,g:text;
function ktdx(s:string):boolean;
var k:integer;
begin
ktdx:=false;
ktdx:=true;
end;
begin
assign(f,'bl.inp');reset(f);
assign(g,'bl.out'); rewrite(g);
readln(f,n);
else write(g,'KHONG');
close(f);
close(g);
end.}
n,i,d:longint; w:string;
f,g:text;
function ktdx(s:string):boolean;
var k:integer;
begin
ktdx:=false;
ktdx:=true;
end;
begin
assign(f,'bl.inp');reset(f);
assign(g,'bl.out'); rewrite(g);
readln(f,n);
for i:=1 to n do
read(f,a[i]);
for i:=1 to n do
begin
str(a[i],w);
if ktdx(w) then
begin
inc(d);
write(g,w,' ');
end;
end;
if d=0 then
write(g,'KHONG CO');
close(f);
close(g);
end.}
m,n,i,d:longint; w:string;
f,g:text;
function ktdx(s:string):boolean;
var k:integer;
begin
ktdx:=false;
ktdx:=true;
end;
function mu(p,q:integer):longint;
begin
else mu:=p*mu(p,q-1);
end;
begin
assign(f,'bl.inp');reset(f);
assign(g,'bl.out'); rewrite(g);
readln(f,m);
for i:=mu(10,m-1) to mu(10,m)-1 do
begin
str(i,w);
if ktdx(w) then
begin
inc(d);
write(g,w,' ');
end;
end;
if d=0 then
write(g,'KHONG CO');
close(f);
close(g);
end.}
m,n,i,d:longint; w:string;
f,g:text;
function ktdx(s:string):boolean;
var k:integer;
begin
ktdx:=false;
ktdx:=true;
end;
function DNP(k:longint):string;
var st:string;
begin
st:='';
repeat
until k=0;
DNP:=st;
end;
begin
assign(f,'bl.inp');reset(f);
assign(g,'bl.out'); rewrite(g);
readln(f,m);
if ktdx(dnp(m)) then
write(g,'CO')
else
write(g,'KHONG');
close(f);
close(g);
end.}
{= In ra cac so vua Doi xung nhi phan vua doi xung thap phan tu n toi m=}
m,n,i,d:longint; w:string;
f,g:text;
function ktdx(s:string):boolean;
var k:integer;
begin
ktdx:=false;
ktdx:=true;
end;
function DNP(k:longint):string;
var st:string;
begin
st:='';
repeat
until k=0;
DNP:=st;
end;
begin
assign(f,'bl.inp');reset(f);
assign(g,'bl.out'); rewrite(g);
readln(f,n,m);
for i:=n to m do
begin
str(i,w);
begin
write(g,i,' ');
inc(d);
end;
end;
if d=0 then
write(g,'KHONG CO');
close(f);
close(g);
end.}
m,n,i,d,d1,d2:longint; st:string;
f,g:text;
function ktdx(s:string):boolean;
var k:integer;
begin
ktdx:=false;
for k:=1 to length(s) do
ktdx:=true;
end;
begin
assign(f,'bl.inp');reset(f);
assign(g,'bl.out'); rewrite(g);
readln(f,st);
begin
end;
write(g,'YES ',0)
else
write(g,'YES ',1)
else
write(g,'YES ',2)
else
write(g,'YES ',3)
else write(g,'NO');
close(f);
close(g);
end. }
m,n,i,j,d:longint; st,tg:string;
f,g:text;
function ktdx(s:string):boolean;
var k:integer;
begin
ktdx:=false;
ktdx:=true;
end;
begin
assign(f,'bl.inp');reset(f);
assign(g,'bl.out'); rewrite(g);
readln(f,st);
i:=1;
repeat
j:=length(st);
repeat
if (ktdx(copy(st,i,j-i+1))) then
begin
inc(d);
a[d]:= copy(st,i,j-i+1) ;
end;
dec(j);
until j=i;
inc(i);
until i=length(st);
for j:=i+1 to d do
if length(a[i])<length(a[j]) then
if ktdx(copy(st,i,length(a[1]))) then
writeln(g, copy(st,i,length(a[1])));
close(f);
close(g);
end.}
m,n,i,j,k,h,max,d1:longint;
f,g:text;
begin
assign(f,'bl.inp');reset(f);
assign(g,'bl.out'); rewrite(g);
readln(f,n);
for i:=1 to n do
read(f,a[i]);
i:=1;
repeat
j:=n;
repeat
d1:=0;
for k:=i to j do
if d1=0 then
begin
if j-i>=max then
begin
max:=j-i;
inc(h);
d[h]:=i; c[h]:=j;
end;
end;
dec(j);
until j=i;
inc(i);
until i=n;
if h=0 then
else
Begin
for i:=1 to h do
if c[i]-d[i]=max then
begin
write(g,a[j],' ');
writeln(g);
end;
end;
close(f);
close(g);
end.}