题解 | #汽水瓶#

汽水瓶

https://www.nowcoder.com/practice/fe298c55694f4ed39e256170ff2c205f

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        List<Integer> res = new ArrayList<>();
        while (scanner.hasNext()) {
            int emptyNum = scanner.nextInt();
            int drinkableNum = 0;
            int borrowNum = 0;
            int exchangeRatio = 3;
            if (0 == emptyNum) {
                break;
            }
            while (emptyNum >= exchangeRatio) {
                int exchangeNum = emptyNum / exchangeRatio;
                drinkableNum += exchangeNum;
                emptyNum = emptyNum % exchangeRatio + exchangeNum;
                // 还上借的瓶子
                if (borrowNum > 0) {
                    emptyNum -= borrowNum;
                    borrowNum = 0;
                }
                // 可以借的情况:2借1,4借2,...,依此类推,剩余2n个空瓶可以借n个空瓶
                if (emptyNum % 2 == 0 && 0 != exchangeNum) {
                    borrowNum = (int) (emptyNum * 0.5);
                    emptyNum += borrowNum;
                }
            }
            res.add(drinkableNum);
        }
        res.forEach(n -> System.out.println(n));
    }
}

全部评论

相关推荐

03-30 19:30
石家庄学院 Java
野蛮的柯基在游泳:都能入股了,还得是Java
点赞 评论 收藏
分享
用户64975461947315:这不很正常吗,2个月开实习证明,这个薪资也还算合理,深圳Java好多150不包吃不包住呢,而且也提前和你说了没有转正机会,现在贼多牛马公司骗你说毕业转正,你辛辛苦苦干了半年拿到毕业证,后面和你说没hc了😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务