[Buổi 26][Vòng đời & operator][HW] Bài 4: Money Addition


LÀM BÀI

Points: 100
Time limit: 1.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
C++

Money Addition

Bối cảnh

Money lưu tổng cents dưới dạng số nguyên để tránh sai số số thực. Constructor nhận dollars,cents và chuẩn hóa về totalCents; operator+ cộng hai object rồi trả một Money mới. Bài Easy luyện constructor giữ representation nhất quán và operator tạo kết quả mà không làm thay đổi hai toán hạng.

Ở B26, constructor/operator/destructor phải được xem như một phần của semantics object chứ không chỉ là cú pháp. Constructor nên đưa object về representation chuẩn ngay từ đầu; operator đọc các object hợp lệ và trả kết quả có cùng invariant; destructor chỉ giải phóng tài nguyên thuộc ownership của chính object.

Yêu cầu

  1. Class Money private totalCents.
  2. Constructor(dollars,cents).
  3. operator+.
  4. In dollars cents với cents 0..99.

Input

Bốn số không âm d1 c1 d2 c2.

Output

Hai số.

Ràng buộc

0≤d,c≤1e9.

Ví dụ 1

Input

1 50 2 75

Output

4 25

Giải thích

Money1=150 cents, Money2=275 cents, tổng425 cents = 4 dollars25 cents. Output 4 25.

Mẫu này đồng thời kiểm tra invariant mà constructor/operator phải giữ. Kết quả không chỉ đúng về giá trị cuối mà còn phải được biểu diễn ở dạng canonical của class; các object nguồn vẫn giữ state riêng nếu phép toán được thiết kế theo value semantics.

Ví dụ 2

Input

0 0 0 0

Output

0 0

Giải thích

Hai object đều0 nên operator+ trả tổng0, biểu diễn 0 0.

Mẫu này đồng thời kiểm tra invariant mà constructor/operator phải giữ. Kết quả không chỉ đúng về giá trị cuối mà còn phải được biểu diễn ở dạng canonical của class; các object nguồn vẫn giữ state riêng nếu phép toán được thiết kế theo value semantics.

Thông tin học tập

  • Module: M07
  • Buổi: B26
  • Loại bài: HOMEWORK
  • Độ khó: Easy
  • Concepts: constructor, operator+, normalization, integer money
  • Giới hạn kiến thức: B01-B26
  • Time limit: 1 second(s)
  • Memory limit: 256 MB
  • Point: 100

Comments

There are no comments at the moment.

Zalo