喝可乐问题,2个空瓶换一瓶可乐

来源:互联网 发布:售电软件是什么 编辑:程序博客网 时间:2024/06/10 07:45

商店里可乐一元一瓶,两个空瓶可以换一瓶可乐,有20元,问可以喝到多少可乐

方法一:一次性把可乐喝完,然后拿瓶去换,换完再喝。。。。(兑换剩余的瓶子要收集一下)

int colaNum = 20;// 最初的可乐数量int bootleNum = 0;// 空瓶子的数量int drinkNum = 0;// 喝过的数量while (colaNum > 0) {// 如果有可乐喝就喝吧drinkNum = drinkNum + colaNum;// 一次全部喝掉bootleNum = bootleNum + colaNum;// 剩余的瓶子加上刚喝过的瓶子colaNum = bootleNum / 2;// 瓶子换成可乐bootleNum = bootleNum - colaNum * 2;// 兑换后剩余的瓶子}System.out.println("一共喝了" + drinkNum + "瓶可乐");System.out.println("剩余的瓶子数是:" + bootleNum);

 

方法二:慢慢喝,喝两瓶就去换可乐,直到喝完,思路清晰明了

while (colaNum > 0) {colaNum--;drinkNum++;bootleNum++;if (bootleNum == 2) {colaNum++;bootleNum = 0;}}System.out.println("一共喝了" + drinkNum + "瓶可乐");System.out.println("剩余的瓶子数是:" + bootleNum);

 

方法三:把瓶子和可乐都可以用钱来衡量的,同样可以用等式:两个瓶子 = 一个瓶子+液体可乐,所以液体可乐和瓶子是等值的,但是最后一个瓶子不能换到可乐了,所以可以喝到20*2-1瓶液体可乐还剩一个瓶子