日期:2014-05-20  浏览次数:20679 次

一道月薪3万的Java面试题目

这是一道java面试题,想清楚了,贴出来和大家分享一下:

题目内容:

小明和小强都是张老师的学生,张老师的生日是某月某日,2人都不知道张老师的生日。  

  
  生日是下列10组中一天:   

  3月4日 3月5日  3月8日

  6月4日 6月7日

  9月1日 9月5日

 12月1日 12月2日 12月8日  

  
  张老师把月份告诉了小明,把日子告诉了小强,张老师问他们知道他的生日是那一天吗?  
  
  小明说:如果我不知道的话,小强肯定也不知道。  
  
  小强说:本来我也不知道,但是现在我知道了。  
  
  小明说:哦,那我也知道了。  
  

  请根据以上对话推断出张老师生日是哪一天?  


答案:9月1日


分析过程:

首先是给出了下面的10组,老师的生日就是其中的一天:

3-4 3-5 3-8

6-4 6-7

9-1 9-5

12-1 12-2 12-8 

小明是知道月份的,因为张老师告诉了他了生日的月份,而小强知道生日的日子。

也就是说小明知道是哪个月,但不知道哪天,而小强知道是哪天不知道是哪个月。

而知道月份的小明说如果我不知道的话,小强肯定也不知道。 小明这么肯定的

说,这说明月份不可能是6月或12月,如果是6月或12月的话,如果小强知道的日子

是7号或者2号的话,小强通过老师告诉的日子就能知道生日是具体的哪月的哪天,

所以排除老师的生日是在6月或12月。现在可供选择的是:

3-4 3-5 3-8 

9-1 9-5 

小明说话之后,小强说本来我也不知道,但是现在我知道了。说明小强听小明这

么说之后他也就知道了老师生日,这也就是说小强知道的日子在剩下的3月和9月中

是唯一的,不然小强不可能知道是哪天?这也就是说小强知道的日子是1号,这样

小强就知道老师的生日了,是9月1日

           

这个时候,小明说哦,那我也知道了。小明这么说,说明小强已经判断出老师生日

是在9月份,那小强是怎么知道的呢?那只有一种可能,那就是小强知道的日子是1日。

这样小明也知道了老师的生日:9月1日







3楼oqqDuan13天前 14:10
我觉得是12月1号也没有错啊,上面的对话也一样成立,lz能解释一下不
Re: cselmu9前天 18:01
回复oqqDuan1n看小明说的第一句话,小明说:”如果我不知道的话,小强肯定也不知道“。小明这么肯定,原因是小明知道的月份不是6月和12月,也说明小强不能通过老师告诉的日子判断出月份是哪个月,如果12月成立的话,这样小明说的话就不一定成立了,原因是老师告诉小强的日子如果是2号的话,小强是可以确定老师生日的,2号对应的只有12月。所以小明的第一句话就排除老师生日在12月份的可能,12月1号自然也就不成立了。
2楼YiShenLiao4天前 15:26
解析的很清楚,学习了!
1楼cselmu94天前 15:24
呵呵,欢迎指教!