Có n chai nước đầy, có thể đổi m chai rỗng lấy 1 chai đầy. Uống chai đầy biến thành chai rỗng. Tìm tối đa số chai có thể uống.
Ví dụ: n = 9, m = 3 → 13 (uống 9, đổi 9/3=3 chai đầy, uống 3, đổi 3/3=1 chai đầy, uống 1 → tổng 9+3+1=13).
Thuật toán
- x = n, s = 0, k = 0.
- Trong khi x ≥ m:
- k = x % m
- x = x // m
- s = s + x
- x = x + k
- Trả về n + s.
Ví dụ (Python)
def solve(n, m):
x = n
s = 0
k = 0
while x >= m:
k = x % m
x = x // m
s = s + x
x = x + k
return n + s
n = 9
m = 3
print(solve(n, m))
Đầu vào
9, 3
Đầu ra
13