C9-02 · Số nguyên hay không
Xem dạng PDFĐề
Cho T chuỗi. Với mỗi chuỗi: nếu đổi được thành số nguyên bằng int() thì in gấp đôi số đó, ngược lại in KHONG HOP LE. Bài luyện try...except ValueError (mục 9.4.2): việc "chuỗi có đổi được thành số không" là việc phải thử mới biết.
Chuỗi đổi được bằng int() là chuỗi gồm một dấu + hoặc - (có thể không có) rồi đến ít nhất một chữ số, ví dụ 21, -5, +7, 007. Các chuỗi như 7.5, 7.0, 1e3, 1 2, --5 không đổi được.
Dữ liệu vào
- Dòng đầu: số nguyên T.
- T dòng tiếp theo, mỗi dòng một chuỗi.
Kết quả
T dòng, dòng thứ i là kết quả của chuỗi thứ i: một số nguyên (gấp đôi giá trị), hoặc KHONG HOP LE.
Ràng buộc
- 1 ≤ T ≤ 1000.
- Mỗi chuỗi dài 1 đến 50 ký tự ASCII in được, không có dấu cách ở đầu/cuối, không chứa dấu gạch dưới
_. - Số nguyên có thể rất lớn (tới 30 chữ số) — Python tính chính xác, không cần lo tràn số.
Ví dụ
Dữ liệu vào:
2
21
7.5
Kết quả:
42
KHONG HOP LE
Giải thích ví dụ
int("21") cho 21, in 21 × 2 = 42. int("7.5") ném ValueError (dù float("7.5") đổi được), nên in KHONG HOP LE.
Lưu ý: in số gấp đôi, không phải chuỗi lặp hai lần ("21" * 2 là "2121"); số âm như -5 vẫn là số nguyên (in -10), nên đừng kiểm bằng isdigit().
Nguồn trong sách: Bài C9-02, mục 9.10, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long · Mức: (*)