/*啤酒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元買啤酒
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.