由于最近忙着找工作,所以我的第一篇C++Blog一直都没有写完,但是觉得老空着也不太好!于是先发一篇关于逻辑的帖子。这是我在网上逛的时候看到的面试题(据说是月薪3万,不知是否属实!)。
小明和小强都是张老师的学生,张老师的生日是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:[小明]知道M月、[小强]知道N日
条件2:“小明说:如果我不知道的话,小强肯定也不知道 小强说:本来我也不知道,但是现在我知道了 小明说:哦,那我也知道了”
由这对话说明:[小强]知道的N日不可能是唯一的N日,排除6月7日和12月2日。
“小明说:如果我不知道的话,小强肯定也不知道”
由这句话+上面的排除法说明:[小明]知道的M月肯定不是6月和12月,否则万一[小强]知道的N日是7日或2日[小明]话就不成立。
现在还剩下:3月4日 3月5日 3月8日 9月1日 9月5日
再根据条件2的后半句:“小强说:本来我也不知道,但是现在我知道了 小明说:哦,那我也知道了”
由这句话说明:小强知道的N日一定不是5日,否则上句[小强]的话不成立,“这时还剩下:3月4日 ,3月8日, 9月1日”
如果[小明]知道的是M月是3月话,上面[小明]的话“小明说:哦,那我也知道了”不成立。
所以只剩下9月1日 。
posted on 2006-06-04 10:15
Leon 阅读(490)
评论(1) 编辑 收藏 引用 所属分类:
杂类