换饮料问题

两块钱一瓶,两个瓶子可以换一瓶饮料,四个盖子可以换一瓶饮料,你有20块钱,最多可以喝多少片饮料

package test;

import java.util.Scanner;

public class Test02 {
    public static void main(String[] args) {
        /**
         * 两块钱一瓶,两个空瓶子换一瓶,四个盖子换一瓶,十块钱
         * 输入一个数表示开始买的数量,计算最多可以喝几瓶
         */
        int money = 20;//拥有的总钱数
        int count = money/2;//喝到的饮料数量
        int bottle = money/2;//瓶子数
        int cap = money/2;//盖子数
        while (true){
            if (cap>=4 || bottle>=2){
                if (cap >= 4){//只使用盖子来进行更换
                    int i = cap / 4;
                    count = count + i;//换完之后,喝到的饮料数增加
                    //换完饮料之后,盖子和瓶子数量都增加
                    cap = cap - 4*i + i;//更换完之后,要先减去用于更换的盖子数量,再加上更换之后的新盖子数量
                    bottle = bottle + i;//更换完之后,瓶子数量要加上新更换的饮料瓶子
                }
                if(bottle >= 2){//只用瓶子来换饮料
                    int j = bottle / 2;
                    count = count + j;//换完之后,喝到的饮料数增加
                    //换完饮料之后,盖子和瓶子数量都增加
                    cap = cap + j;//更换完之后,盖子数量需要加上新更换的饮料瓶的盖子
                    bottle = bottle - 2*j + j;//更换完之后,瓶子数量要先减去用于更换的瓶子数,再加上更换之后的新瓶子数量
                }
            }
            if(cap<4 && bottle<2){
                System.out.println("一共可以喝" + count + "瓶");
                System.out.println("剩余瓶盖:" + cap + ",剩余瓶子:" + bottle);
                break;
            }
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值