一道月薪3W的java面试题 (小明和小强都是张老师的学生,张老师的生日是某月某日,2人都不知道张老师的生日)

小明和小强都是张老师的学生,张老师的生日是M月N日,2人都知道张老师的生日 
是下列10组中的一天,张老师把M值告诉了小明,把N值告诉了小强,张老师问他们知道他的生日是那一天吗? 
3月4日 3月5日 3月8日 
6月4日 6月7日 
9月1日 9月5日 
12月1日 12月2日 12月8日 
小明说:如果我不知道的话,小强肯定也不知道 
小强说:本来我也不知道,但是现在我知道了 
小明说:哦,那我也知道了 
请根据以上对话推断出张老师的生日是哪一天??

网上有这题的答案,靠,原本我懂的都被他说的不懂了,强烈谴责这种把简单问题复杂化专业化的垃圾。
我的解答是这样的:
首先
3月4日 3月5日 3月8日 
6月4日 6月7日 
9月1日 9月5日 
12月1日 12月2日 12月8日 
小明说:如果我不知道的话,小强肯定也不知道
这句话的信息量太大了,直接就可以从四组中筛掉两组 
为什么?因为如果小明拿到了6,那么里面有7日,如果小强拿到7日那小强还不能知道小明手里是6月么?所以小明肯定不敢说:小强肯定也不知道。同理,可以删除12
这样,就只剩下:
3月4日 3月5日 3月8日
9月1日 9月5日 
接着小强说了:
本来我也不知道,但是现在我知道了。
所以,如果小强拿到5号,他肯定不会这样说,所以他只会拿到4,8,1.
到这里,我的结论是,小明和小强都知道生日了,但是我们这些解题的人不知道,因为我们的信息量只能确定小明拿到的只会在3月份和9月份之中,小强拿到的只会在4,8,1中,
接着小明说了:哦,那我也知道了 
因为如果小明拿到的是3月份,那么还会是4和8,所以他肯定不会说自己知道,只有当自己拿到的是9月份的时候,他才敢肯定小强是1.
而小强只要拿到的不是5就可以确定小明拿到的是3月还是9月,关键就在小明最后一句话上面,他确定了小明是3和9里面的9,小强是4,8,1里面的1

这就是我的答案,网上的垃圾答案可以不要再误人子弟了么?

仅以此文埋葬那些在网上把简单问题复杂化专业化把垃圾答案胡乱贴的懵懂派。你们可以安息了。
原文地址:https://www.cnblogs.com/javawebsoa/p/3206360.html