Số đối xứng là số có thể viết từ phải sang trái các chữ số của nó ta vẫn được chính nó. Từ một số có hai chữ số ta có thể nhận được một số đối xứng theo cách sau: Lấy số ban đầu cộng với số viết lại theo thứ tự ngược lại của nó, nếu kết quả chưa phải là số đối xứng, số đó lại cộng với số viết theo thứ tự của nó và tiếp tục như vậy cho đến khi nhận được số đối xứng.
Ví
dụ: Từ số 49 ta có: 49 + 94 = 143; 143 + 341 = 484. Như vậy số đối xứng thu được
từ số 49 là 484.
Em
hãy viết chương trình tìm số đối xứng từ số N (với số N là một số nguyên có hai
chữ số khác nhau và 11<=N<=99 được nhập từ bàn phím).
CODE THAM KHẢO:
program so_doi_xung;
uses crt;
var m,n,s:qword;
function dx(n:qword): boolean;
var i,k:byte;
s:string;
begin
str(n,s);
k:=length(s);
dx:=true;
for i:=1 to k div 2 do
if s[i] <> s[k-i+1] then
begin
dx:=false;
break;
end;
end;
begin
clrscr;
repeat
write('Nhap N: '); readln(n);
until (n>=11) and (n<=99);
s:=n;
if dx(n) then begin write(n); s:=0; end else
repeat
m:=0;
while n > 0 do
begin
m:=m*10 + N mod 10;
n:= n div 10;
end;
s:=s+m;
n:=s;
until dx(s) = True;
if s<>0 then write(s);
readln;
end.
Đăng nhận xét