C5-04 · Số đối xứng

Xem dạng PDF

Gửi bài giải

Điểm: 1,00
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
Sách "Lập trình cơ sở với Python"
Dạng bài
Ngôn ngữ cho phép
Python

Đề

Một số nguyên không âm là số đối xứng nếu đọc xuôi hay đọc ngược đều như nhau, ví dụ 121, 1221, 7.

Viết lại bài số đối xứng của mục 4.6.3 (Ví dụ 4.9) thành hàm la_doi_xung(n) trả về True/False. Chương trình chính đọc T số; với mỗi số in YES nếu đối xứng, ngược lại in NO.

Dữ liệu vào

  • Dòng đầu: số nguyên ~T~.
  • ~T~ dòng tiếp theo, mỗi dòng một số nguyên không âm ~n~ (viết không có chữ số 0 thừa ở đầu).

Kết quả

~T~ dòng, mỗi dòng YES hoặc NO cho số tương ứng.

Ràng buộc

  • ~1 \le T \le 1000~.
  • ~0 \le n \le 10^{18}~.

Ví dụ

Dữ liệu vào:

3
1221
120
7

Kết quả:

YES
NO
YES

Giải thích ví dụ

Ý tưởng của mục 4.6.3: "bóc" từng chữ số bằng n % 10, "gắn" vào bên phải số đảo bằng so_dao * 10 + chu_so, rồi so số đảo với số ban đầu.

~n~ Số đảo Kết luận
1221 1221 bằng nhau → YES
120 21 (đọc ngược là 021) khác → NO
7 7 số một chữ số luôn đối xứng → YES

Ghi chú

  • Trong thân hàm, vòng lặp làm n về 0. Phải lưu bản gốc (n_goc = n) trước vòng lặp để so sánh; tham số n là biến cục bộ nên không ảnh hưởng biến ở chương trình chính (mục 5.4).
  • Bỏ chữ số hàng đơn vị bằng chia nguyên //, không phải /.
  • Số 0 là số đối xứng. Số tận cùng bằng 0 (khác 0) không bao giờ đối xứng.
  • Hệ thống chỉ so kết quả in ra, không xem cách làm (dùng chuỗi hay dùng %, // đều được chấm như nhau); yêu cầu "viết lại thành hàm, có ít nhất ba assert" là phần giảng viên kiểm khi chấm tay.

Nguồn trong sách: Bài C5-04, mục 5.10, giáo trình "Lập trình cơ sở với Python" — TS. Nguyễn Quốc Long · Mức: (**)


Đang tải...