Nguồn đề bài: http://vn.spoj.com/PTIT/problems/BCPALIN/
1. Đề bài BCPALIN PTIT spoj
Số nguyên n gọi là số đối xứng nếu đọc từ trái qua phải, hay từ phải qua trái đều được số giống nhau. Ví dụ: 11,121,101 là các số đối xứng.
Yêu cầu: Cho số n, xác định xem n có phải là số đối xứng hay không.
Dữ liệu
– Dòng đầu chứa số bộ test
– Mỗi dòng sau chứa 1 bộ test gồm duy nhất số nguyên dương n (n<=10^9)
Kết quả
Với mỗi bộ test, xuất ra trên 1 dòng: “YES” nếu là số đối xưng, ngược lại là “NO”.
Ví dụ
INPUT | OUTPUT |
3 101 111 100 | YES YES NO |
2. Hướng dẫn BCPALIN PTIT spoj
Cách làm thô nhất ở đây có thể áp dụng là bạn coi như số nhập vào là 1 chuỗi. vậy chỉ cần lật chuỗi đó lại mà vẫn bằng với chuổi ban đầu thì nó đối xứng rồi 😀 ngoài ra bạn có thể làm bằng cách sử dụng div mod sẽ có lợi hơn. nhưng ở đây mình làm bằng xâu. nếu bạn cần có thể yêu cầu mình bằng cách liên hệ qua FB hoặc sdt.
3. Code tham khảo BCPALIN PTIT spoj
VAR s,s1:STRING; i,j:WORD; n:LONGINT; spt:WORD; a:ARRAY[1..10000] OF LONGINT; boo:ARRAY[1..10000] OF STRING; BEGIN readln(spt); FOR j:=1 TO spt DO BEGIN s:=''; s1:=''; n:=0; readln(n); str(n,s); FOR i:= length(s) DOWNTO 1 DO s1:=s1+s[i]; IF s=s1 THEN boo[j]:='YES' ELSE boo[j]:='NO'; END; FOR j:=1 TO spt DO writeln(boo[j]); END.