C5-01 · Số lớn hơ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

Đề

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 float vì float chỉ 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 ba assert" (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ư 10 và 9) và số rất lớn. Một lời giải chỉ đúng với ví dụ 3 8 chư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: (*)


Đang tải...