两块钱一瓶,两个瓶子可以换一瓶饮料,四个盖子可以换一瓶饮料,你有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;
}
}
}
}