[Buổi 5][Củng cố vòng lặp][ADV] Bài 1: Ví tiền lệnh tuần tự
Ví tiền lệnh tuần tự
Bối cảnh
Bạn đang mô phỏng một ví điện tử bằng một chuỗi lệnh. Số dư ban đầu bằng 0 và phải được giữ nguyên qua nhiều lệnh liên tiếp cho tới khi chương trình kết thúc.
Có lệnh nạp tiền, chi tiền, xem số dư và lệnh dừng. Khi chi tiêu, ví không được phép âm: nếu số dư không đủ thì giao dịch bị từ chối và số dư không thay đổi. Bài này giúp bạn luyện khái niệm trạng thái được duy trì qua vòng lặp.
Yêu cầu
Số dư ban đầu bằng 0. Xử lý lệnh đến khi gặp 0:
1 x: cộngxvào số dư và in số dư mới.2 x: nếu số dư đủ, trừxvà in số dư mới; nếu không đủ, không thay đổi số dư và inNO balance.3: in số dư hiện tại.- Mã khác: in
INVALID. 0: kết thúc, không in gì cho lệnh 0.
Mỗi lệnh khác 0 tạo đúng một dòng output.
Input
Dữ liệu vào được cung cấp theo định dạng sau:
Nhiều dòng; balance ban đầu 0.
Hãy đọc các giá trị theo đúng thứ tự và ý nghĩa đã mô tả trong đề bài.
Output
In kết quả theo đúng định dạng sau:
Mỗi lệnh khác0 một dòng output.
Không in thêm lời giải thích, nhãn hoặc ký tự ngoài phần kết quả được yêu cầu.
Ràng buộc
x tới10^9; ≤100 lệnh.
Ví dụ 1
Input
0
Output
Giải thích ví dụ
Xử lý lệnh theo thứ tự: gặp 0 nên dừng. Các dòng kết quả tương ứng tạo thành output đã cho.
Ví dụ 2
Input
1 100
2 30
3
0
Output
100
70
70
Giải thích ví dụ
Xử lý lệnh theo thứ tự: nạp 100 → số dư 100; chi 30 thành công → số dư 70; xem số dư → 70; gặp 0 nên dừng. Các dòng kết quả tương ứng tạo thành output đã cho.
Thông tin học tập
- Buổi: B05
- Concepts: sentinel-controlled while loop, state, multi-command branching
- Giới hạn kiến thức: B01-B05
- Time limit: 2 seconds
- Memory limit: 256 MB
- Point: 100
Comments