JavaScript题解 | #汽水瓶#
汽水瓶
https://www.nowcoder.com/practice/fe298c55694f4ed39e256170ff2c205f
const rl = require('readline').createInterface({
input: process.stdin,
output: process.output
});
const inputs = [];
rl.on('line', (line) => {
inputs.push(parseInt(line));
}).on('close', () => {
resolve(inputs);
})
function resolve(inputs) {
for(let i = 0; i < inputs.length; i++) {
let num = inputs[i];
if(num < 2) {
continue;
}
let total = 0;
while(num >= 2) {
const canDrink = ~~(num / 3);
const remain = num % 3;
if(canDrink === 0) {
if(remain === 2) {
total += 1;
}
break;
}
total += canDrink;
num = canDrink + remain;
}
console.log(total);
}
}
思路:
模拟过程的题,先找一个示例模拟一下过程,弄清楚是怎么执行的。
这道题,3个空瓶换1瓶汽水,并且可以向老板借一瓶空瓶,那就是说最少2瓶就可以换一瓶。
那就先把手里所有的空瓶拿去换汽水 canDrink,canDrink 再加上剩余的 remain 再去换汽水,直到最后不能再换汽水为止输出换了多少瓶汽水。
如果空瓶少于2瓶,按题目要求是不输出直接跳过。
查看1道真题和解析