Để kiểm tra xem 1 số có đối xứng hay không thì chúng ta cần phải biết số đối xứng là gì?
Số đối xứng là những số mà khi đảo ngược lại số đó ta được số ban đầu.
VD: 111,121,44,1001,1111...
Để xem 1 số có phải số đối xứng ta cần phải xét xem các số của nó giống nhau không. Ví dụ trong 1001, ta xét thấy các kí tự tương ứng của 1(ở đầu) là 1(ở cuối) và hai số 0. Vậy nên chúng ta phải dùng cách làm sao để tách được từng con số ra. Ở đây tớ sẽ sử dụng cách đơn giản nhất và khá ngắn là kiểm tra bằng cách chuyển đổi biến số nguyên sang xâu
Chuyển hóa sang xâu và xét các số đối ứng(Code đã được kiểm tra, chạy được 100%
function ktra(n:longint):boolean;
var i:longint;s:AnsiString;
begin
str(n,s);
for i:=1 to trunc(length(s)/2) do if s[i]=s[length(s)-i+1] then ktra:=true else
begin
ktra:=false;
exit;
end;
end;
Giải thích:Str(n,s) để gán giá trị của biến n và s với giá trị xâu
Chạy từ 1 đến 1/2 số chữ số của xâu s và kiểm tra xem các kí tự có giống nhau không.(Length(s) là hàm đếm số kí tự(chữ số) của s.
Nếu giống thì gán biến ktra số đối xứng là true còn ngược lại thì gán là false và thoát ra khỏi ctrinh con(tối ưu vòng lặp).