题解 | #汽水瓶#

汽水瓶

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

import java.util.Scanner;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            int numi = scanner.nextInt();
            if (numi == 0) {
                break;
            }
            list.add(numi);
        }
        for (int i = 0; i < list.size(); i++) {
            System.out.println(getDrinkNum(list.get(i)));
        }
        scanner.close();
    }
    static int getDrinkNum(int num) {
        int subMod = 0;
        int drinkNum = 0;
        //能被3整除的部分,商加入喝的数量中
        //模3的累计起来
        while ((num / 3) != 0) {
            drinkNum += (num / 3);
            subMod += num % 3;
            num /= 3;
        }
        //最后如果num小于3了,那么就要也加入余数的集合中
        subMod += num;
        //余数小于等于1,找老板借空瓶子还不起
        if (subMod <= 1) {
            return drinkNum;
        } else if (subMod <= 3) {
            //余数等于2或者3,找老板借空瓶子可以再喝一瓶
            return drinkNum + 1;
        } else {
            //余数还有很多,递归方法再去把余数的和放入方法参数
            drinkNum += getDrinkNum(subMod);
            return drinkNum;
        }
    }

}

全部评论

相关推荐

07-16 14:10
门头沟学院 Java
点赞 评论 收藏
分享
仁者伍敌:牛子这些人还会点一个自动回复,boss都不带回复的
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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