商店里可乐一元一瓶,两个空瓶可以换一瓶可乐,有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瓶液体可乐还剩一个瓶子