算法初体验:10元买啤酒

    /*啤酒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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值