BCPALIN PTIT spoj – Số đối xứng (Cơ bản)

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ụ

INPUTOUTPUT
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.

 

 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *