目标
超市正在促销,你可以用 numExchange 个空水瓶从超市兑换一瓶水。最开始,你一共购入了 numBottles 瓶水。
如果喝掉了水瓶中的水,那么水瓶就会变成空的。
给你两个整数 numBottles 和 numExchange ,返回你 最多 可以喝到多少瓶水。
示例 1:
输入:numBottles = 9, numExchange = 3
输出:13
解释:你可以用 3 个空瓶兑换 1 瓶水。
所以最多能喝到 9 + 3 + 1 = 13 瓶水。
示例 2:
输入:numBottles = 15, numExchange = 4
输出:19
解释:你可以用 4 个空瓶兑换 1 瓶水。
所以最多能喝到 15 + 3 + 1 = 19 瓶水。
提示:
- 1 <= numBottles <= 100
- 2 <= numExchange <= 100
思路
有 numBottles 瓶水,numExchange 个空瓶可以兑换一瓶水,问最多可以喝几瓶水。
依题意模拟即可。空瓶数 = 剩余未兑换空瓶 + 新兑换瓶数。
代码
/**
* @date 2025-10-01 19:05
*/
public class NumWaterBottles1518 {
public int numWaterBottles(int numBottles, int numExchange) {
int res = numBottles;
while (numBottles >= numExchange) {
int change = numBottles / numExchange;
res += change;
numBottles = numBottles % numExchange + change;
}
return res;
}
}