C5-01 · Số lớn hơn
Xem dạng PDFĐề
Viết hàm lon_hon(a, b) trả về (bằng return, không in) số lớn hơn trong hai số nguyên ~a~ và ~b~, không dùng hàm dựng sẵn max(). Chương trình chính đọc hai số, gọi hàm và in kết quả.
Đây là bài khởi động của Chương 5: hàm lo tính, chương trình chính lo nhập và in (mục 5.3.2).
Dữ liệu vào
Một dòng chứa hai số nguyên ~a~ và ~b~, cách nhau một dấu cách.
Kết quả
Một dòng: số lớn hơn trong hai số. Nếu hai số bằng nhau thì in số đó.
Ràng buộc
- ~-10^{18} \le a, b \le 10^{18}~ (có thể âm, có thể bằng 0, có thể bằng nhau).
- Số nguyên của Python không bị tràn, nên không cần lo số lớn; nhưng đừng đổi sang
floatvìfloatchỉ giữ chính xác khoảng 15–16 chữ số và in ra có.0.
Ví dụ
Dữ liệu vào:
3 8
Kết quả:
8
Giải thích ví dụ
Lời gọi lon_hon(3, 8) gán a = 3, b = 8 (đối số gán cho tham số theo vị trí, mục 5.2.2). Vì 3 > 8 sai nên hàm trả về b, tức 8; chương trình chính in giá trị trả về đó. Hàm không gọi input() và không print.
Gợi ý các dòng kiểm thử viết ngay dưới hàm (tính kỳ vọng bằng tay trước khi chạy, mục 5.5.2):
assert lon_hon(3, 8) == 8
assert lon_hon(-5, -2) == -2
assert lon_hon(4, 4) == 4
Ghi chú
- Hệ thống chấm chỉ so kết quả in ra, không xem cách viết. Yêu cầu "viết hàm đúng tên", "không dùng
max()", "có ít nhất baassert" (mục 5.10) là phần giảng viên kiểm khi chấm tay. - Các test có số âm (cả hai số đều âm), số 0, hai số bằng nhau, số có nhiều chữ số khác nhau (như
10và9) và số rất lớn. Một lời giải chỉ đúng với ví dụ3 8chưa chắc đã đúng.
Nguồn trong sách: Bài C5-01, 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: (*)