算法---啤酒瓶问题

今天项目经理给出了一道啤酒瓶的问题:开始在纸上写了几步,分解到第7步的时候脑子有点乱无法继续分解下去,所以就写了一个java小程序给解决了这个问题。

问题:一瓶啤酒1块钱,2个空瓶可以换1瓶啤酒,3个瓶盖可以换1瓶啤酒,问你如果有20块钱,一共能换到多少瓶啤酒?(不允许借钱借啤酒等其他方法)

 public static void main(String[] args) throws InterruptedException {
        //啤酒数量
         int beer=20;
         int emptyBottle =20;
         int bottleCap =20;
        //1瓶酒1块钱    2个空瓶换1瓶啤酒  3个瓶盖换1瓶啤酒     20块钱一共能买多少瓶啤酒
        while(emptyBottle>=2 || bottleCap>=3){
            if(emptyBottle>=2){
                System.out.println("空瓶换啤酒----------------------------------");
                 //  啤酒
                beer=beer+emptyBottle/2;
                bottleCap = bottleCap+emptyBottle/2;
                emptyBottle =emptyBottle%2+emptyBottle/2;
                System.out.println("emptyBottle---"+emptyBottle+"------bottleCap--"+bottleCap+"------beer--"+beer);
            }
            if(bottleCap>=3){
                System.out.println("瓶盖换啤酒----------------------------------");
                beer=beer+bottleCap/3;
                emptyBottle =emptyBottle+bottleCap/3;
                bottleCap = bottleCap%3+bottleCap/3;
                System.out.println("emptyBottle---"+emptyBottle+"------bottleCap--"+bottleCap+"------beer--"+beer);
            }
            Thread.sleep(1000);
            if (emptyBottle<2 && bottleCap<3){
                break;
            }
        }
        System.out.println("beer---------"+beer);
    }

程序运行结果:113

空瓶换啤酒----------------------------------
emptyBottle---10------bottleCap--30------beer--30
瓶盖换啤酒----------------------------------
emptyBottle---20------bottleCap--10------beer--40
空瓶换啤酒----------------------------------
emptyBottle---10------bottleCap--20------beer--50
瓶盖换啤酒----------------------------------
emptyBottle---16------bottleCap--8------beer--56
空瓶换啤酒----------------------------------
emptyBottle---8------bottleCap--16------beer--64
瓶盖换啤酒----------------------------------
emptyBottle---13------bottleCap--6------beer--69
空瓶换啤酒----------------------------------
emptyBottle---7------bottleCap--12------beer--75
瓶盖换啤酒----------------------------------
emptyBottle---11------bottleCap--4------beer--79
空瓶换啤酒----------------------------------
emptyBottle---6------bottleCap--9------beer--84
瓶盖换啤酒----------------------------------
emptyBottle---9------bottleCap--3------beer--87
空瓶换啤酒----------------------------------
emptyBottle---5------bottleCap--7------beer--91
瓶盖换啤酒----------------------------------
emptyBottle---7------bottleCap--3------beer--93
空瓶换啤酒----------------------------------
emptyBottle---4------bottleCap--6------beer--96
瓶盖换啤酒----------------------------------
emptyBottle---6------bottleCap--2------beer--98
空瓶换啤酒----------------------------------
emptyBottle---3------bottleCap--5------beer--101
瓶盖换啤酒----------------------------------
emptyBottle---4------bottleCap--3------beer--102
空瓶换啤酒----------------------------------
emptyBottle---2------bottleCap--5------beer--104
瓶盖换啤酒----------------------------------
emptyBottle---3------bottleCap--3------beer--105
空瓶换啤酒----------------------------------
emptyBottle---2------bottleCap--4------beer--106
瓶盖换啤酒----------------------------------
emptyBottle---3------bottleCap--2------beer--107
空瓶换啤酒----------------------------------
emptyBottle---2------bottleCap--3------beer--108
瓶盖换啤酒----------------------------------
emptyBottle---3------bottleCap--1------beer--109
空瓶换啤酒----------------------------------
emptyBottle---2------bottleCap--2------beer--110
空瓶换啤酒----------------------------------
emptyBottle---1------bottleCap--3------beer--111
瓶盖换啤酒----------------------------------
emptyBottle---2------bottleCap--1------beer--112
空瓶换啤酒----------------------------------
emptyBottle---1------bottleCap--2------beer--113
beer---------113