C9-03 · Phép chia an toàn

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 dòng, mỗi dòng dự kiến chứa hai số nguyên a b. Với mỗi dòng in:

  • a // b (phép chia lấy phần nguyên của Python) nếu dòng có đúng hai số nguyên và b ≠ 0;
  • CHIA CHO 0 nếu dòng có đúng hai số nguyên và b = 0;
  • SAI DINH DANG nếu dòng không có đúng hai giá trị, hoặc a hay b không đổi được thành số nguyên bằng int().

Khi một dòng vừa sai định dạng vừa có b bằng 0 (ví dụ x 0), in SAI DINH DANG: chưa có đủ hai số nguyên thì chưa nói đến phép chia. Bài cố ý luyện một khối try với hai khối except (mục 9.4.2).

Dữ liệu vào

  • Dòng đầu: số nguyên T.
  • T dòng tiếp theo, mỗi dòng gồm 1 đến 3 giá trị cách nhau một dấu cách.

Kết quả

T dòng, mỗi dòng một kết quả theo thứ tự dữ liệu vào.

Ràng buộc

  • 1 ≤ T ≤ 1000.
  • Mỗi giá trị dài 1 đến 20 ký tự ASCII in được; số nguyên có trị tuyệt đối không quá 10¹⁸, có thể âm.
  • Mỗi giá trị không chứa dấu gạch dưới _ (Python cho phép int("1_000"), nhưng đó không phải điều bài này kiểm tra).

Ví dụ

Dữ liệu vào:

3
17 5
8 0
8 hai

Kết quả:

3
CHIA CHO 0
SAI DINH DANG

Giải thích ví dụ

  • 17 // 5 = 3.
  • 8 0: hai số nguyên nhưng int(a) // int(b) ném ZeroDivisionError → CHIA CHO 0.
  • 8 hai: int("hai") ném ValueError → SAI DINH DANG.

Chú ý: // làm tròn xuống, nên -17 // 5 là -4 (không phải -3 như int(-17 / 5)); 8 00 cũng là chia cho 0.

Nguồn trong sách: Bài C9-03, 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...