Tất cả thử thách
Dễ 0 đã giải Tỷ lệ chấp nhận 0%

Định dạng hóa đơn

In các dòng hóa đơn và dòng tổng, số tiền lưu bằng xu nhưng hiển thị dạng đô la và xu.

Bạn sẽ học được gì

  • Lưu tiền dưới dạng số xu nguyên
  • Định dạng xu thành đô la với hai chữ số
  • Tạo các dòng báo cáo và dòng tổng

Đề bài

Xem bản gốc (English)

Tiền thường được lưu bằng số xu nguyên để tránh lỗi làm tròn và chỉ được định dạng thành đô la khi hiển thị.

Với mỗi mặt hàng, viết dòng <name> x<quantity> = <amount>, trong đó amount = quantity × giá tính bằng xu. Sau các mặt hàng, viết Total = <amount> với tổng của mọi dòng.

Định dạng mọi số tiền thành đô la, một dấu chấm và đúng hai chữ số xu, ví dụ 5 → 0.05 và 1250 → 12.50.

Hãy viết format_invoice(names, quantities, cents).

Đầu vào

names, quantities, cents: Các danh sách tương ứng mô tả từng mặt hàng.

Đầu ra

Trả về các dòng mặt hàng, tiếp theo là dòng tổng.

Ràng buộc

0 ≤ số mặt hàng ≤ 1,000

1 ≤ quantity ≤ 1,000; 0 ≤ cents ≤ 10^6

Ví dụ

Ví dụ 1
Đầu vào:
cents = [250, 375]
names = ["Tea", "Cake"]
quantities = [2, 1]

Kết quả mong đợi:
expected = ["Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"]
Đầu vào:
std::vector<long long> cents = {250, 375};
std::vector<std::string> names = {"Tea", "Cake"};
std::vector<long long> quantities = {2, 1};

Kết quả mong đợi:
std::vector<std::string> expected = {"Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"};
Đầu vào:
long[] cents = new long[] {250, 375};
string[] names = new string[] {"Tea", "Cake"};
long[] quantities = new long[] {2, 1};

Kết quả mong đợi:
string[] expected = new string[] {"Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"};

Giải thích

2 × 250 = 500 xu là 5.00 và 375 xu là 3.75; tổng là 875 xu: ["Tea x2 = 5.00", "Cake x1 = 3.75", "Total = 8.75"].

Ví dụ 2
Đầu vào:
cents = [5]
names = ["Gum"]
quantities = [3]

Kết quả mong đợi:
expected = ["Gum x3 = 0.15", "Total = 0.15"]
Đầu vào:
std::vector<long long> cents = {5};
std::vector<std::string> names = {"Gum"};
std::vector<long long> quantities = {3};

Kết quả mong đợi:
std::vector<std::string> expected = {"Gum x3 = 0.15", "Total = 0.15"};
Đầu vào:
long[] cents = new long[] {5};
string[] names = new string[] {"Gum"};
long[] quantities = new long[] {3};

Kết quả mong đợi:
string[] expected = new string[] {"Gum x3 = 0.15", "Total = 0.15"};

Giải thích

3 × 5 = 15 xu, được viết là 0.15: ["Gum x3 = 0.15", "Total = 0.15"].

Hướng tiếp cận

Hãy tự thử trước, sau đó mở từng gợi ý một.

Gợi ý 1

Làm mọi phép tính bằng số xu nguyên.

Gợi ý 2

Tách xu thành đô la (cents / 100) và phần dư (cents % 100).

Gợi ý 3

Luôn in phần xu với hai chữ số, nên 5 xu là 0.05.

Độ phức tạp mong đợi

thời gian O(số mặt hàng), bộ nhớ phụ O(số mặt hàng)

Tham khảo

Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.

Học hỏi từ người khác

Giải pháp cộng đồng

Chưa có giải pháp nào được chia sẻ. Hãy giải thử thách này để đăng giải pháp đầu tiên.