1518. Water Bottles

#### QUESTION:

There are numBottles water bottles that are initially full of water. You can exchange numExchange empty water bottles from the market with one full water bottle.

The operation of drinking a full water bottle turns it into an empty bottle.

Given the two integers numBottles and numExchange, return the maximum number of water bottles you can drink.

Example 1:

``````Input: numBottles = 9, numExchange = 3
Output: 13
Explanation: You can exchange 3 empty bottles to get 1 full water bottle.
Number of water bottles you can drink: 9 + 3 + 1 = 13.
``````

Example 2:

``````Input: numBottles = 15, numExchange = 4
Output: 19
Explanation: You can exchange 4 empty bottles to get 1 full water bottle.
Number of water bottles you can drink: 15 + 3 + 1 = 19.
``````

Constraints:

``````1 <= numBottles <= 100
2 <= numExchange <= 100
``````

#### EXPLANATION:

easy的题目, 其实就和十进制, 二进制的切换相同.

#### SOLUTION:

``````class Solution {
fun numWaterBottles(numBottles: Int, numExchange: Int): Int {
var result = 0
var bottles = numBottles
var carry = 0
while (bottles + carry >= numExchange) {
result += bottles
var tmp = bottles
bottles = (tmp + carry) / numExchange
carry = (tmp + carry) % numExchange
}
return result + bottles
}
}
``````