Ví dụ Python thực chiến, bài toán dữ liệu Net (phần 3)

Giải quyết bài toán dữ liệu Net

Chiến lược của tôi để giải quyết bài toán này là theo dấu số MB cái được mang sang từ tháng
trước. Tôi gọi cái này là excess
Xem xét test case sau:

10
3
4
12
1

Trong mỗi tháng, Pero được cung cấp 10 MB dữ liệu, và chúng ta phải xử
lí dữ liệu cái anh ta đã sử dụng trong 3 tháng đã cho. Trong tháng đầu tiên, Pero được
cung cấp 10 MB và sử dụng 4 MB, nên excess cái được mang sang tháng sau là 6 MB. Trong tháng
thứ hai, Pero được cung cấp 10 MB thêm, nên bây giờ anh ta có 16 MB tổng cộng. Anh ta sử dụng
12 MB tháng này, nên excess mang sang là 16 – 12 = 4 MB. Trong tháng thứ ba, Pero được cung
cấp 10 MB thêm, nên bây giờ anh ta có tổng cộng 14 MB. Anh ta sử dụng 1 MB tháng này, nên
excess mang sang là 14 – 1 = 13 MB.
Chúng ta cần biết số MB cái Pero có sẵn cho tháng tiếp theo (tháng thứ 4). Anh ta có 13 MB cái mang
sang từ 3 tháng đầu tiên, và anh ta được cung cấp như thường lệ 10 MB cho tháng này, nên anh
ta có 13 + 10 = 23 MB để sử dụng.
Khi tôi đi đến viết code dựa trên giải thích này, tôi quên thêm 10 MB cuối cùng này, nên đầu ra của tôi
là 13 thay vì 23. Tôi tập trung đặc biệt vào excess và quên rằng cái chúng ta cần không phải là excess
mang sang tháng sau, mà là tổng số MB có sẵn. Tổng đó bằng excess cộng bất cứ thứ gì Pero được cung cấp
mỗi tháng.
Chúng ta viết code để giải quyết bài toán dữ liệu Net như sau:

monthly_mb = int(input())
n = int(input())
excess = 0
¶ for i in range(n):

used = int(input())

excess = excess + monthly_mb – used

¸ print(excess + monthly_mb)

Range for loop lặp qua n lần, một cho mỗi tháng cái Pero có kế hoạch dữ liệu.

Chia sẻ

Leave a Reply

Your email address will not be published. Required fields are marked *