题解 | #汽水瓶#

汽水瓶

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

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            //能喝多少瓶的计数
            int emptyBottle = in.nextInt();
            //读取空瓶数量
            int count = 0;
            //表示输入结束,你的程序不应当处理这一行
            if(emptyBottle == 0){            
                break;
            }else{
                //递归函数
                countCoke(emptyBottle, count);
            }
        }
    }

    private static void countCoke(int emptyBottle, int count){
        //商, 目前空瓶能换的coke, 喝完也能得到空瓶
        int quotient = emptyBottle/3;
        //余数, 目前换完coke余下的空瓶
        int remainder = emptyBottle%3;
        //更新喝过的coke
        count = count + quotient;
        //更新目前的空瓶
        emptyBottle = quotient + remainder;
        //目前空瓶为1, 无法额外换coke, 借了空瓶也无法换
        if(emptyBottle == 1){
            System.out.println(count);
        //目前空瓶为2或3, 可以额外换1个coke, 2空瓶借空瓶兑换也能换
        }else if(emptyBottle == 2 || emptyBottle == 3){
            count++;
            System.out.println(count);
        }else{
        //目前的空瓶大于3, 递归调用函数
            countCoke(emptyBottle,count);
        }

    }


}

全部评论

相关推荐

我即大橘:耐泡王
点赞 评论 收藏
分享
3 2 评论
分享
牛客网
牛客企业服务