算法初体验:10元买啤酒

来源:互联网 发布:大容量网络硬盘 编辑:程序博客网 时间:2024/06/10 13:49
    /*啤酒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);        }    }}
0 0
原创粉丝点击