/**
* 你有n元钱,一瓶汽水2元钱,2个空瓶换一瓶汽水,4个瓶盖换一瓶汽水,问最多喝多少瓶汽水?
* @param {number} n 表示有多少钱
* @param {number} o 表示一瓶汽水要多少钱
* @param {number} p 表示几个空瓶可以换一瓶汽水
* @param {number} q 表示几个瓶盖可以换一瓶汽水
*
*/
const getMostQS = (n, o, p, q) => {
console.log({ n, o, p, q });
const original = ~~(n / o) // 刚开始可以买到的汽水
let bottle = original
let cap = original
let ans = original
// p个空瓶换一瓶汽水,q个瓶盖换一瓶汽水
while (bottle / p >= 1 || cap / q >= 1) {
if (bottle / p >= 1) {
bottle = bottle - p
// 换了一瓶后,多了一个空瓶和瓶盖
bottle++
cap++
} else {
cap = cap - q
// 换了一瓶后,多了一个空瓶和瓶盖
bottle++
cap++
}
ans++
}
console.log(ans);
return ans
}
// 自行校验,都对!
for (let i = 1; i <= 20; i++) {
getMostQS(i, 2, 2, 4)
}
// 撒花!