题解 | #汽水瓶#

汽水瓶

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
    let arr = []
    while(line = await readline()){
        arr.push(line)
    }
    arr.pop()
    let result = []
    for (let i = 0; i < arr.length; i++) {
        result.push(count(arr[i]))
    }
    result.forEach(item => console.log(item))
    function count(num) {
        if (num < 2) {
            return 0
        }
        if (num == 2) {
            return 1
        }
        // 得到可以换的瓶子个数
        let num1 = Math.floor(num / 3)
        // 得到余数
        let num2 = num % 3
        // 把换到的瓶子个数加上余数,进行下一轮的交换
        // 和上次交换的结果相加,就是最终交换的个数
        return num1 + count(num1 + num2)
    }
}()

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:23
转人工😡
门口唉提是地铁杀:五次握手了
点赞 评论 收藏
分享
程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
星辰再现:裁员给校招生腾地方
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务