卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章11201本站已运行3223

java - 求能兑换几瓶汽水

某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(但是必须要归还)。
小张手上有n个空汽水瓶,她想知道自己最多可以喝到多少瓶汽水。
数据范围:输入的正整数满足 1≤n≤100注意:本题存在多组输入。输入的 0 表示输入结束。
整理题目:
  1. 三空瓶换一瓶;
  2. 一次能借一瓶;
  3. 一次性输入多组数据判断;
  4. 判断n瓶空的水瓶能换几瓶;
思路:
         加入我有10瓶,10瓶/3 能换 3瓶 还余一个空瓶,此时我手上有 3满瓶+1空瓶,喝完就是 = 4空瓶,
         4空瓶 中拿3个 又能去换一瓶,剩一个空瓶,把这个满的喝完,手上有两个空瓶,向老板借一个空瓶
         刚好凑够三个,换一瓶,喝完,把这个空瓶喝完,走人。

代码:

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 因为不确定我要输入几组数据
        while(sc.hasNext()){
            int num = sc.nextInt();
            //知道输入的数是0就不输入了
            if(num == 0){
                break;
            }else{
                //输入的数是0后,开始干活判断能换几瓶
                Judge(num);
            }
        }
    }
    public static void Judge(int num){
        int n = 0;  //兑换瓶数
        int mod =0; //剩余瓶数
 
        while(num>=3){
              n += num/3; //兑换了几瓶
            mod = num%3;  //未对换的瓶子
            num = num/3 + mod;//现在手上的瓶子等于 兑换了的瓶子 + 未兑换的瓶子
        }
        if(num == 2){//如果手上只有两个瓶子,可向老板借一个
            n++;//借了一个后凑够了3个又能兑换一瓶
        }
        System.out.println(n);//打印兑换的瓶数
    }
}

思路二:
       能向老板借1瓶!
       如果我有10瓶,分五组,一组两瓶,那我去老板那借5次,一次借一瓶。
       凑够了五组 3 空瓶 ,喝完就是 5个空瓶 , 然后再把这五个空瓶还回去,
       没了,,,走人。
代码:

public static void main(String[] args){
       Scanner in = new Scanner(System.in);
       while(in.hasNextInt()){
           int n = in.nextInt();
           if(n != 0){
               System.out.println(n / 2);
           }
       }
   }
卓越飞翔博客
上一篇: [Python 原创] python for循环中 if else 语句缩进对应问题
下一篇: Java 二叉树遍历(先序、中序、后序)的实现
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏