啤酒问题 啤酒2元一瓶,4个盖子可以换一瓶,2个空瓶可以换一瓶,请问10元可以喝多少瓶?
public class DemoTest {
public static int totalNumber;
public static int lastBottleNumber;
public static int lastCoverNumber;
public static void main(String[] args) {
//啤酒问题 啤酒2元一瓶,4个盖子可以换一瓶,2个空瓶可以换一瓶,请问10元可以喝多少瓶?
buy(10);
System.out.println("总数:"+totalNumber);
System.out.println("剩余瓶子数:"+lastBottleNumber);
System.out.println("剩余盖子数:"+lastCoverNumber);
}
public static void buy(int money){
//1、先买了再说
int buyNumber=money/2;
totalNumber+=buyNumber;
//2、把瓶子和盖子换算成前继续买
//计算本轮总的盖子和瓶子总数
int allBottleNumber = buyNumber+lastBottleNumber;
int allCoverNumber = buyNumber+lastCoverNumber;
int allmoney=0;
if(allBottleNumber>=2){
allmoney+=(allBottleNumber/2)*2;
}
lastBottleNumber=allBottleNumber%2;
if(allCoverNumber>=4){
allmoney+=(allCoverNumber/4)*2;
}
lastCoverNumber=allCoverNumber%4;
if(allmoney>=2){
buy(allmoney);
}
}
}