/*啤酒2元一瓶,
2个空瓶可以换一瓶,
4个瓶盖可以换一瓶,
问10块钱可以换几瓶*/
public class Test {
private static final int onemoney = 2;//一瓶2块钱
private static final int emptybeer = 2;//2个空瓶换一瓶
private static final int capbeer = 4;//4个瓶盖换一瓶
private static final int MYMONEY = 10;//我的钱
private static int time=0;//一共换了几次
private static int sumbeer = 0;//总共喝了多少瓶
public static void main(String[] args) {
int time_1_beer = MYMONEY/onemoney;
sumbeer = time_1_beer;
change(time_1_beer,time_1_beer);
System.out.println("一共买了1次,换了"+time+"次,喝了"+sumbeer+"瓶");
}
public static void change(int empty,int cap){
time++;
System.out.println(time+"要去交换啤酒了,当前我的:空瓶数="+empty+",瓶盖数="+cap);
int num_empty = empty / emptybeer;//空瓶能换几瓶
int num_empty_leave = empty % emptybeer;//空瓶换完剩下几瓶
System.out.println("--空瓶换了"+num_empty+"瓶啤酒,剩下了"+num_empty_leave+"个空瓶");
int num_cap = cap / capbeer;//瓶盖能换几瓶
int num_cap_leave = cap % capbeer;//瓶盖换完剩下几瓶
System.out.println("--瓶盖换了"+num_cap+"瓶啤酒,剩下了"+num_cap_leave+"个瓶盖");
int num_changeAll = num_empty + num_cap;
sumbeer = sumbeer + num_changeAll;
int num_empty_now = num_empty_leave + num_changeAll;//当前剩下的空瓶数= 换完剩下的+换回来又喝完的
int num_cap_now = num_cap_leave + num_changeAll;//当前剩下的空瓶数= 换完剩下的+换回来又喝完的
if(num_empty_now >= emptybeer || num_cap_now >= capbeer){
change(num_empty_now, num_cap_now);
}else{
System.out.println();
System.out.println("不能再换了,剩下的空瓶数"+num_empty_now+",剩下的瓶盖数"+num_cap_now);
}
}
}
算法初体验:10元买啤酒
最新推荐文章于 2022-03-20 12:26:06 发布