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瓶,按题目要求是不输出直接跳过。

全部评论

相关推荐

黑皮白袜臭脚体育生:春节刚过就开卷吗?哈基馆,你这家伙......
点赞 评论 收藏
分享
给🐭🐭个面试机会吧:我boss直聘天天有家教跟我打招呼😓
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务