C9-02 · Số nguyên hay khô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

Đề

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: (*)


Đang tải...