1518. Water Bottles
题目简介
题目给我们两个参数:
numBottles
:代表初始状态下有几瓶装满水的瓶子numExchange
:代表几个空瓶子可以换一个装满水的瓶子
题目要求我们在给定的参数下,求得我们最后最多能喝几瓶水
解题思路
题目要求我们能喝几瓶水,所以我们只需要关注我们一开始有几瓶水 + 我们能换几瓶水就好
在每一轮喝完水之后,我们最多能换:拥有空瓶子的数量 / numExchange
取整数部份的瓶子
其中拥有空瓶子的数量 = 上一轮 numBottles
/ numExchange
取整数部份 + 上一轮 numBottles
% numExchange
我们就这样一轮一轮的喝下去,直到拥有空瓶子的数量 < numExchange
为止
Javascript
/**
* @param {number} numBottles
* @param {number} numExchange
* @return {number}
*/
var numWaterBottles = function (numBottles, numExchange) {
let res = numBottles
while (numBottles >= numExchange) {
const remains = numBottles % numExchange
const newBottle = Math.floor(numBottles / numExchange)
res += newBottle
numBottles = newBottle + remains
}
return res
};