在网上看到这个题 ,他们各种答案,想看看大家的想法!!
小明和小强都是张老师的学生,张老师的生日是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日
小明说:如果我不知道的话,小强肯定也不知道
小强说:本来我也不知道,但是现在我知道了
小明说:哦,那我也知道了
请根据以上对话推断出张老师的生日是哪一天? 

解决方案 »

  1.   

    是9月1号,首先分析第一句,小明说:如果我不知道的话,小强肯定也不知道。小明在知道m是这么说,可见m值一定满足以下条件:既只知道n值是无法做出判断的。那哪个m值是只要知道n值而不需要m值就能判断的,显然是6月和12月,因为他们各有一个特殊的日子7号和2号,因此6月和12月是可以只知道n值就能判断的,所以m值一定不是
    6或12,而应该是3或9。现在n值有一下几个可能性:4,5,8,1。下一句,小强说:本来我也不知道,但是现在我知道了。也就是说小强知道月份是3或9就做出判断了,因此,肯定不是5。现在n值可能是4,8,1,但如果月份是3的话仍不能做出判断,但小强却做出了判断,因此月份一定是9,所以最后的结果应该是9月1号。
      

  2.   

    九月一号
    分析:
    1:小明说:如果我不知道的话,小强肯定也不知道。 这句话表明,小强不可能仅通过自己知道的N日来判断结果,即N不可能是2或7,假如小明知道的M是6或12,则小强有可能知道结果(小明说他不知道的话,小强一定不知道,所以排除了M=6或12)。2:小强说:本来我也不知道,但是现在我知道了。(小强通过小明的话  已经排除了M=6或M=12  那么就只剩下3月和9月了) 而后他又说现在他知道了,即他根据自己得到了N值判断出了结果,则这个N在3月和9月中是独一无二的日子,即N=1,所以生日应该是九月一号
      

  3.   

    之前有人问过这样的问题,可以参考我给的代码
    http://topic.csdn.net/u/20120503/15/441bdc60-ec01-4bd5-b284-93297e4b3feb.html