java实现穷举法-泊松分酒

/**
 * 泊松分酒
 * */
public class ShareWine {
    private int b1 = 12;
    private int b2 = 8;
    private int b3 = 5;
    private int m = 6;//要分的酒量

    private void backBottle(int bb1,int bb2,int bb3){   //各瓶子剩余的酒量
        System.out.println("瓶1的酒量为:" + bb1 + " 瓶2的酒量为:" + bb2 + " 瓶3的酒量为:" + bb3);
        if(bb1 == m || bb2 == m || bb3 == m){
            System.out.println("find the bottle");
            return;
        }
        if(bb2 == 0){
            //从瓶子1往瓶子2里倒酒
            if(bb1 >= b2){
                backBottle(bb1 - b2,b2,bb3);
            }else{
                backBottle(0,bb1,bb3);
            }
        }else if(bb2 != 0 && bb3 != b3){
            if(bb2 + bb3 < b3){
                //倒不满
                backBottle(bb1,0,bb2 + bb3);
            }else{
                backBottle(bb1,bb2 -(b3 - bb3),b3);
            }
        }else if(bb3 == b3){
            //瓶子3满了,往瓶子1倒
            if(bb3 + bb1 < b1){
                //说明倒完后瓶子1没满
                backBottle(bb1 + bb3,bb2,0);
            }else{
                //瓶子3倒完之后还会剩点
                backBottle(b1,bb2,bb3 - (b1 - bb1));
            }
        }
    }

    public static void main(String[] args){
        ShareWine s = new ShareWine();
        s.backBottle(12,0,0);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值