换水问题
描述
-
超市正在促销,你可以用 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
Typescript 版算法实现
1 ) 方案1:模拟
function numWaterBottles(numBottles: number, numExchange: number): number {
let bottle = numBottles, ans = numBottles;
while (bottle >= numExchange) {
bottle -= numExchange;
++ans;
++bottle;
}
return ans;
};
2 ) 方案2:数学
function numWaterBottles(numBottles: number, numExchange: number): number {
return numBottles >= numExchange ? Math.floor((numBottles - numExchange) / (numExchange - 1)) + 1 + numBottles : numBottles;
};
335



被折叠的 条评论
为什么被折叠?



