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:
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
nvề 0. Phải lưu bản gốc (n_goc = n) trước vòng lặp để so sánh; tham sốnlà 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 baassert" 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...