Chuyên đề Giải một số bài toán về số đối xứng

Chuyên đề Giải một số bài toán về số đối xứng

Một số bài toán đối xứng:

Bài toán 1 : Nhập vào số tự nhiên n kiểm tra xem n có phải là số đối xứng không

Bài toán 2 :Đọc ra tất cả các số đối xứng thập phân có m (m<6)chữ số ?

Bài toán 3 : Tìm số đối xứng từ một mảng số nguyên nhập vào từ bàn phím

Bài toán 4 : Số n được gọi là số đối xứng nhi phân nếu biểu diễn nhị phân của n là một biểu thức đối xứng.Viết chương trình kiểm tra tính đối xứng nhị phân của số tự nhiên n cho trước.

Bài toán 5:Đọc ra tất cả các số vừa đối xứng thập phân vừa đối xứng nhị phân nhỏ hơn 1000.

Bài toán 6: Kiểm tra chuỗi S có phải là chuỗi đối xứng hay không?

Bài toán 7: Chèn vào chuỗi S ít ký tự nhất để trở thành chuỗi đối xứng.

Bài toán 8: Xóa đi ít ký tự nhất để S trở thành chuỗi đối xứng.

Bài toán 9: Đọc ra số đối xứng nhỏ nhất lớn hơn n (n <=100 chữ số)

VD: n=999 thì đọ ra 1001.

doc 12 trang Mai Loan 16/09/2025 260
Bạn đang xem tài liệu "Chuyên đề Giải một số bài toán về số đối xứng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
 Trường THCS Đại Tự – Năm học 2004 – 2005.
 =========================================================
 Phần 1: Mở đầu.
I) Lý do chọn chuyên đề
 Việc đưa tin học vào trường phổ thông được bộ GDĐT, các Sở GDĐT 
hết sức quan tâm . Là một giáo viên tham gia giảng dạy bộ môn tin học 
trong nhà trường đặc biệt là giúp các em bước đầu làm quen với ngôn ngữ 
lập trình PASCAL. Qua thời gian giảng dạy và tìm tòi , chắt lọc nghiên 
cứu tôi xin trình bày một chuyên đề nhỏ “Giải một số bài toán về số đối 
xứng” Để học sinh bước đầu làm quen vối ngôn ngữ lập trình PASCAL 
 II) Phạm vi, mục đích của chuyên đề 
 1) Phạm vi của chuyên đề: 
 Do điều kiện hạn chế về thời gian và khả năng có hạn, chuyên đề chỉ 
 nêu được một số thuật giải qua các ví dụ minh hoạ về “Số đối xứng”
 2) Mục đích của chuyên đề:
 - Giúp học sinh hiểu được thế nào là số đối xứng và cách cách cài 
 đặt khác nhau .
 Phần 2: Nội dung cụ thể
 I) Cơ sở lí luận: 
 Thông qua chuyên đề này học sinh biết vận dụng và được cung cấp 
 các kiến thức cần thiết về phương pháp sử dụng các vòng lặp các kỹ 
 thuật lập trình cơ bản những kinh nghiệm cụ thể trong qua trình tìm 
 tòi lời giải, giúp học sinh rèn luyện các thao tác tư duy, phương pháp 
 suy luận và khả năng sáng tạo.
 II)Các bài tập minh hoạ :
 1.1- Tìm hiểu khái niệm số đối xứng (Palindrom)
 Số a1a2a3........an-2an-1an thoả mãn a1=an, a2=an-1, a3=an-2....
 khi đó số a1a2a3........an-2an-1an được gọi là số đối xứng
 VD: số 11, 22, 333, 414 ,123321 được gọi là số đối xứng
 =======================================================Ch 1
 Chuyên đề: Giải một số bài toán về số đối xứng. Trường THCS Đại Tự – Năm học 2004 – 2005.
 =========================================================
 {Bài 1}
uses crt;
var i,i1,m,n,d,j:longint;
 dx:boolean;
a,b:array[1..100] of longint;
begin
 write('nhap so n=');readln(n);
m:=1;
d:=0;
repeat
 i1:=0;
 i:=m;
 repeat
 inc(i1);
 a[i1]:=i mod 10;
 i:=i div 10;
 until i=0;
 j:=1;
 dx:=true;
 if i1>1 then
 while (j<=i1 div 2) and(dx) do
 begin
 dx:=(a[j]=a[i1-j+1]);
 inc(j);
 end;
if dx then begin
 inc(d);
 write(m,' ');
 end;
 inc(m);
until m>n;
write('co',d);
readln
end.
............................................... uses crt;
var i,n,d,m,m1,k:longint;
a,b:array[1..100] of longint;
begin
 write('nhap so n=');readln(n);
i:=1;
 =======================================================Ch 3
 Chuyên đề: Giải một số bài toán về số đối xứng. Trường THCS Đại Tự – Năm học 2004 – 2005.
 =========================================================
 a[i] :=n mod 10;
 n:=n div 10;
 until n=0;
 j:=1;
 kt:=true;
 if i>1 then while(j<=i div 2) and kt do
 begin kt:=(a[j]=a[i-j+1]);inc(j) ; end;
 DX:=kt;
 end;
BEGIN
clrscr;
writeln('Vao N=');readln(n);
if dx(n) then writeln('N la so doi xung ')else
write('N khong phai la so doi xung');
readln
END.
 ...........................
 Bài toán 2 :Đọc ra tất cả các số đối xứng thập phân có m (m<6)chữ 
 số ?
uses crt;
var n,m,i,d:longint;
 dx:boolean;
 T,A:array [1..1000] of longint;
 S:String;
 function mu(a,n:longint):longint;
 begin
 if a=0 then mu:=1 else mu:=mu(a-1,n)*n;
 end;
BEGIN
clrscr;
write('Nhap vao so chu so m=');readln(m);
for n:=mu(m-1,10) to mu(m,10)-1 do
 begin
 dx:=true;
 str(n,S);
 if length(S)>1 then begin
 i:=1;
 while dx and (i<=length(S) div 2) do begin
 dx:=(s[i]=s[length(s)-i+1]);
 =======================================================Ch 5
 Chuyên đề: Giải một số bài toán về số đối xứng. Trường THCS Đại Tự – Năm học 2004 – 2005.
 =========================================================
 dx:=a[j]=a[i1-j+1];
 inc(j);
 end;
if dx then begin
 inc(d);
 c[d]:=m;
 end;
end;
if d=0 then writeln('Trong mang khong co so doi xung nao');
if d>0 then
for i:=1 to d do
 begin
 if i=1 then write('Cac phan tu cua mang la doi xung la:',c[i],' ');
 if i>1 then write(c[i],' ');
 end;
readln
end.
.........................................................................................................
 Bài toán 4 : Số n được gọi là số đối xứng nhi phân nếu biểu diễn nhị 
 phân của n là một biểu thức đối xứng.Viết chương trình kiểm tra 
 tính đối xứng nhị phân của số tự nhiên n cho trước.
uses crt;
Var n: word; 
 i, j: integer; 
 dx: Boolean; 
 A: array[1..16] of 0..1; 
Begin 
 Write(' Nhap so tu nhien n: '); Readln(n); 
 i:=0; 
 While n>0 do 
 Begin 
 inc(i); 
 A[i]:= n mod 2; 
 n:= n div 2; 
 End; 
 j:=1; 
 dx:= True; 
 If i>=2 then 
 While (j<=(i div 2)) do 
 =======================================================Ch 7
 Chuyên đề: Giải một số bài toán về số đối xứng. Trường THCS Đại Tự – Năm học 2004 – 2005.
 =========================================================
 Stop:=(not dx)or(dx and(c=2)); 
 If dx then 
 If c2 then c:=2 Else Writeln(N); 
 End; 
 End; 
 Readln; 
End. 
 { xau con doi xung dai nhat}
 var a:array[1..100] of string; 
 st,st1:string;
 i,j,n,d,s,max,k,h:longint;
 function dx(s:string):Boolean;
 var w:longint;
 begin
 dx:=false;
 for w:=1 to length(s) do
 if s[w]s[length(s)-w+1] then exit;
 dx:=true;
 end;
 Begin
 write('Nhap xau st='); Readln(st);
 i:=1;n:=length(st);
 repeat
 j:=n;
 repeat
 st1:=copy(st,i,j-i+1);
 if dx(st1) then
 begin
 d:=length(st1);
 if (d>max) and dx(st1) then max:=d;
 end
 else
 dec(j);
 until dx(st1);
 inc(i);
 =======================================================Ch 9
 Chuyên đề: Giải một số bài toán về số đối xứng. Trường THCS Đại Tự – Năm học 2004 – 2005.
 =========================================================
 readln;
 end.
 {Đối xứng gương}
 Var i,j,k,m,n,h,d,d1,d2:longint;
 s,s1,s2,s3:string;
 f,g:text;
 Begin
 assign(f,'bt.inp');reset(f);
 assign(g,'bt.out');rewrite(g);
 readln(f,s);
 for i:=1 to length(s) do
 begin
 if s[i] in['A','H','M','O','T','U','V','W','X','Y'] then
 inc(d);
 if s[i] in['C','D','E','H','T','K','O','X'] then
 inc(d1);
 if s[i] in['H','I','N','O','X','Z'] then
 inc(d2);
 end;
 if (d=0)or(d1=0)or(d2=0) then
 write(g,'no')
 else
 begin
 writeln(g,'YES');
 if d=length(s) then
 writeln(g,'1')
 else
 if d1=length(s) then
 write(g,'2')
 else
 if d2=length(s) then
 write(g,'3')
 else
=======================================================Ch 11
 Chuyên đề: Giải một số bài toán về số đối xứng.

Tài liệu đính kèm:

  • docchuyen_de_giai_mot_so_bai_toan_ve_so_doi_xung.doc