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

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);
}

 
1、 ArrayList<Integer> list = new ArrayList<Integer>(); 在这个泛型为Integer的ArrayList中存放一个String类型的对象。 2、 编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。 3、 方法中的内部类能不能访问方法中的局部变量,为什么? 4、 定义一个交通灯枚举,包含红灯、绿灯、黄灯,需要有获得下一个灯的方法,例如:红灯获取下一个灯是绿灯,绿灯获取下一个灯是黄灯。 5、 编写一个类,增加一个实例方法用于打印一条字符串。并使用反射手段创建该类的对象, 并调用该对象中的方法。 6、 把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出,例如: a: 21 次 b: 15 次 c:: 15 次 把: 7 次 当: 9 次 前: 3 次 ,:30 次 7、 将字符串中进行反转。abcde --> edcba 8、 编写程序,循环接收用户从键盘输入多个字符串,直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印。 9、 写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 10、 28人买可乐,3个可乐瓶盖可以一瓶可乐,那么要多少可乐28?假如是50人,又需要多少可乐?(需写出分析思路)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值