您的位置:首页 > 编程语言 > Java开发

28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(解读误区)

2016-07-24 21:29 603 查看

28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?

本来是一道很简单的问题(找个小学生都能算出来)但是大部分人都忽略了一个跟经济有关的问题。假如是三个人去买啤酒喝,到底需要买几瓶啤酒呢?是3瓶吗?NO

NO

NO

是2瓶!你想想,先买2瓶,然后再向老板借1瓶(万一不借呢?)喝完之后刚好3个瓶盖可以兑换刚才借的那1瓶啤酒,对老板来说并没有什么亏损,为什么不借呢!!!


上代码:
public static void main(String[] args) {
int peopleNum = 18;// 人数
int beerNum = 0, beerCap = 0, beerToBuy = 0;
while (beerNum != peopleNum) {
beerToBuy++;// 买一瓶
beerNum++;// 啤酒数量加1
beerCap++;// 啤酒盖数量加1
if (beerCap == 3) {// 啤酒盖累计到3个就去兑换一个
beerNum++;// 兑换之后啤酒数量再加1
beerCap = 1;// 啤酒盖数量就是刚才兑换的那一瓶啤酒的数量为1
}
if ((beerNum == peopleNum - 1) && (beerCap == 2)) {// 借一瓶,喝完再兑换
sop(">目前啤酒有" + beerNum + "瓶,啤酒盖有" + beerCap + "个");
beerNum++;
sop(">酒盖还差1个就可以兑换1瓶,可以先借1瓶啤酒,喝完再兑换");
}
}// 直到啤酒数量与人的数量一致
sop(">>" + peopleNum + "个人喝啤酒,需要买" + beerToBuy + "瓶啤酒");
}
/**
* 简化的打印形式
*/
public static void sop(Object object) {
System.out.println(object);
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 效率 算法 误区