Bài tập  /  Bài đang cần trả lời

Mua bánh

Câu 2. (6 điểm) Mua bánh
Trong một đợt khảo sát đê thu nhận thông tin từ phía học sinh, cơ sở kinh doanh ABC có ý định tặng quà cho những học sinh tham gia khảo sát. Nhân viên A dự định mua bánh để tăng học sinh. A nhân thấy cần mua tối thiểu n chiếc bánh để tăng học sinh. Tại cửa hàng bánh, biết đơn giá mỗi chiếc bánh là m đồng. Nếu mua k chiếc bánh trở lên thì được giảm giá 20% (có thể mua được nhiều hơn n chiếc bán mà chi phí ít tiên hơn).
Yêu cầu: Cho biết n là số bánh cần mua tối thiểu, m là giá của một chiếc bánh và k là số lượng bánh được áp giảm giá. Hãy xác định số tiền tối thiêu A cân dùng mua bánh để tăng học sinh?
Dữ liệu: Vào từ file BANH.INP chứa duy nhất một dòng ba số nguyên n, m, k (1 ≤ < 100, 1 ≤ m ≤ 10000, 1≤ k ≤100).
1 trả lời
Hỏi chi tiết
76
Tham khảo câu trả lời từ Trợ lý ảo Lazi
Để tính số tiền tối thiểu mà A cần dùng để mua bánh, chúng ta cần thực hiện các bước như sau:

1. **Đọc dữ liệu từ file**: File `BANH.INP` sẽ chứa ba số nguyên: `n`, `m`, và `k`.
2. **Xác định số lượng bánh cần mua**: A phải mua ít nhất `n` chiếc bánh.
3. **Tính toán chi phí**:
- Nếu A mua từ `n` bánh trở lên nhưng ít hơn `k` bánh, chi phí sẽ là `n * m`.
- Nếu A mua từ `k` bánh trở lên, chi phí sẽ là `n * m * 0.8` (mua được giảm giá 20%).
4. **So sánh các trường hợp**: Từ việc tính toán trên, A cần xác định xem mua bao nhiêu chiếc bánh thì chi phí là thấp nhất.
5. **Xuất kết quả**: In ra số tiền tối thiểu A cần dùng.

Dưới đây là một đoạn mã Python minh họa cách giải bài toán này:

```python
def read_input(filename):
with open(filename, 'r') as file:
n, m, k = map(int, file.readline().strip().split())
return n, m, k

def calculate_min_cost(n, m, k):
if n < k:
# Nếu mua n bánh không đủ điều kiện được giảm giá
total_cost = n * m
else:
# Nếu mua đủ k bánh sẽ được giảm giá
total_cost_discounted = (n * m) * 0.8
total_cost_without_discount = n * m
total_cost = min(total_cost_without_discount, total_cost_discounted)

return total_cost

# Đọc dữ liệu từ file
n, m, k = read_input('BANH.INP')

# Tính toán và in ra chi phí tối thiểu
min_cost = calculate_min_cost(n, m, k)
print(int(min_cost)) # Chuyển sang kiểu int nếu cần làm tròn
```

### Giải thích các phần trong mã:
- Hàm `read_input` đọc dữ liệu từ file `BANH.INP`.
- Hàm `calculate_min_cost` tính toán chi phí tối thiểu để mua bánh dựa trên số lượng bánh cần mua và các quy định về giá giảm.
- Kết quả sẽ được in ra với giá trị là số tiền tối thiểu mà A cần chi.

Lưu ý rằng mã này giả định rằng file đầu vào đã được định dạng hợp lệ theo đề bài.
1
0
21/09 08:18:50
+5đ tặng
def tinh_tien_banh(n, m, k):
  """
  Tính số tiền tối thiểu cần mua bánh

  Args:
    n: Số bánh cần mua tối thiểu
    m: Giá một chiếc bánh
    k: Số lượng bánh được áp dụng giảm giá

  Returns:
    Số tiền tối thiểu cần phải trả
  """

  if n >= k:
    # Nếu mua đủ để được giảm giá
    t * m * 0.8
  else:
    # Cần mua thêm để được giảm giá
    t * m * 0.8

  return tong_tien

# Đọc dữ liệu từ file
with open("BANH.INP", "r") as f:
  n, m, k = map(int, f.readline().split())

# Tính và in kết quả
ket_qua = tinh_tien_banh(n, m, k)
print(ket_qua)

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Trắc nghiệm Lập trình Lớp 8 mới nhất

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Trợ lý ảo Trợ lý ảo
×
Gia sư Lazi Gia sư