题解 | #汽水瓶#
汽水瓶
https://www.nowcoder.com/practice/fe298c55694f4ed39e256170ff2c205f
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
// Write your code here
while ((line = await readline())) {
if (line == "0") {
break;
}
let n = Number(line);
let k = 0;
console.log(getVal(k, n));
}
})();
//喝了 k 瓶,当前空瓶数 n
var getVal = function (k, n) {
//看手上瓶子够不够换
if (n == 1) {
return k;
}
if (n == 2) {
return k + 1;
}
//余下的空瓶子
let n2 = n % 3;
//兑换的新饮料
n = Math.floor(n / 3);
//喝掉
k += n;
//现在的空瓶子
n += n2;
return getVal(k, n);
};
查看15道真题和解析