Giả sử có n số chai nước đầy, ta đổi m chai nước rỗng chỉ lấy một chai nước đầy. Bây giờ uống một chai nước đầy biến nó thành một chai rỗng. Chúng ta phải tìm ra số chai nước tối đa mà chúng ta có thể uống.
Vậy đầu vào là n =9, m =3 thì đầu ra sẽ là 13 vì ban đầu ta có 9 chai nên sau khi uống hết chai thì được 9/3 =3 chai đầy, sau khi uống hết chúng ta. có ba chai rỗng và sử dụng chúng, chúng tôi có thể mua một chai và uống, vì vậy chúng tôi đã hoàn thành 9 + 3 + 1 =13 chai.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
x:=n, s:=0, k:=0
-
trong khi x> =m, thực hiện
-
k:=x mod m
-
x:=thương số của x / m
-
s:=s + x
-
x:=x + k
-
-
trả lại n + s
Ví dụ (Python)
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
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