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

解决方案 »

  1.   

    小明说:如果我不知道的话,小强肯定也不知道。
    由此可知在小明知道的月份列出的日子在其他月份里都有,则6月7日、12月2日中的7,2都是唯一的,所以小强可以推出M月份是3月或9月。
    小强说:本来我也不知道,但是现在我知道了。
    说明小强知道的N日在3月,9月是不重复的,即不是5日,去掉3月5日,9月5日
    小明说:哦,那我也知道了。
    在剩下的3月4、8日,9月1日中,小明在知道月份的情况下也知道了,说明是9月1日,即小明知道的M是9,如果是3他就无法判断出
    ??