Bài 36.2. Tính Chi Phí Giao Hàng - [Độ khó: Dễ]
Bài 36.2. Tính Chi Phí Giao Hàng - [Độ khó: Dễ]
Bạn đang phát triển một ứng dụng vận chuyển hàng hóa, nơi có nhiều loại hình vận chuyển khác nhau: vận chuyển tiêu chuẩn và vận chuyển nhanh. Mỗi loại hình sẽ có cách tính chi phí khác nhau dựa trên trọng lượng gói hàng. Để đảm bảo tính linh hoạt và dễ mở rộng trong tương lai, bạn quyết định sử dụng đa hình.
Mô tả bài tập
Tạo một lớp cơ sở trừu tượng VanChuyen
(Shipment) với thuộc tính trongLuongGoiHang
(package weight). Lớp này phải có một phương thức thuần ảo tinhChiPhi()
(calculate cost) để tính toán chi phí vận chuyển.
Kế thừa từ VanChuyen
để tạo hai lớp cụ thể:
VanChuyenTieuChuan
(Standard Shipment): Chi phí được tính bằngtrongLuongGoiHang * 5000
VNĐ.VanChuyenNhanh
(Express Shipment): Chi phí được tính bằngtrongLuongGoiHang * 8000
VNĐ cộng thêm một phí cố định 15000 VNĐ.
Bạn cần đọc danh sách các gói hàng và loại hình vận chuyển, sau đó tính tổng chi phí cho tất cả các gói hàng.
INPUT FORMAT
Dòng đầu tiên chứa số nguyên N
(1 <= N <= 100), là số lượng gói hàng.
N
dòng tiếp theo, mỗi dòng mô tả một gói hàng:
- Nếu là vận chuyển tiêu chuẩn:
TIEU_CHUAN <trong_luong>
- Nếu là vận chuyển nhanh:
NHANH <trong_luong>
Trong đó:
<trong_luong>
: Số thực dương (đơn vị kg, có thể có 1 chữ số thập phân).
Ràng buộc:
- Trọng lượng gói hàng từ 0.1 kg đến 100.0 kg.
OUTPUT FORMAT
In ra một số nguyên duy nhất là tổng chi phí vận chuyển của tất cả các gói hàng. Kết quả làm tròn đến số nguyên gần nhất (sử dụng round()
hoặc ép kiểu long long
).
Ví dụ:
Input:
3
TIEU_CHUAN 2.5
NHANH 1.0
TIEU_CHUAN 5.0
Output:
64500
Giải thích:
- Gói hàng 1 (Tiêu chuẩn, 2.5 kg): Chi phí =
2.5 * 5000 = 12500
VNĐ. - Gói hàng 2 (Nhanh, 1.0 kg): Chi phí =
1.0 * 8000 + 15000 = 8000 + 15000 = 23000
VNĐ. - Gói hàng 3 (Tiêu chuẩn, 5.0 kg): Chi phí =
5.0 * 5000 = 25000
VNĐ. - Tổng chi phí =
12500 + 23000 + 25000 = 60500
VNĐ. Sai sót ở giải thích ví dụ: Chi phí gói hàng 3:5.0 * 5000 = 25000
. Tổng chi phí =12500 + 23000 + 25000 = 60500
.60500
là kết quả đúng. (Ví dụ output64500
là sai hoặc có sự nhầm lẫn trong tính toán). Hãy chỉnh lại ví dụ để khớp với tính toán. OK, để khớp với Output 64500, tôi sẽ điều chỉnh input hoặc giải thích. Hoặc đơn giản là đổi Output thành 60500. Giả sử output64500
là đúng, vậy thì phải có một gói hàng khác. Để ví dụ dễ hiểu, tôi sẽ điều chỉnhNHANH 1.0
thànhNHANH 3.0
: Input mới:
Tính toán lại:3 TIEU_CHUAN 2.5 NHANH 3.0 TIEU_CHUAN 5.0
- Gói hàng 1 (Tiêu chuẩn, 2.5 kg): Chi phí =
2.5 * 5000 = 12500
VNĐ. - Gói hàng 2 (Nhanh, 3.0 kg): Chi phí =
3.0 * 8000 + 15000 = 24000 + 15000 = 39000
VNĐ. - Gói hàng 3 (Tiêu chuẩn, 5.0 kg): Chi phí =
5.0 * 5000 = 25000
VNĐ. - Tổng chi phí =
12500 + 39000 + 25000 = 76500
VNĐ. Hmm, vẫn không khớp với 64500. Có lẽ tôi nên làm một ví dụ đơn giản và khớp. Để đạt 64500:TIEU_CHUAN 5.0
->25000
NHANH x
->8000x + 15000
25000 + 8000x + 15000 = 64500
40000 + 8000x = 64500
8000x = 24500
x = 24500 / 8000 = 3.0625
. (số lẻ quá)
Để ví dụ khớp, tôi sẽ giữ input cũ và sửa output. Ví dụ đã sửa lại: Input:
3
TIEU_CHUAN 2.5
NHANH 1.0
TIEU_CHUAN 5.0
Output:
60500
Giải thích:
- Gói hàng 1 (Tiêu chuẩn, 2.5 kg): Chi phí =
2.5 * 5000 = 12500
VNĐ. - Gói hàng 2 (Nhanh, 1.0 kg): Chi phí =
1.0 * 8000 + 15000 = 8000 + 15000 = 23000
VNĐ. - Gói hàng 3 (Tiêu chuẩn, 5.0 kg): Chi phí =
5.0 * 5000 = 25000
VNĐ. - Tổng chi phí =
12500 + 23000 + 25000 = 60500
VNĐ.
Comments