新浪UC部门软件测试面试题:
有4个朋友住在一个小城镇里。他们的名字是库克、米勒、史密斯、卡特。他们一个是警察、一个是木匠,一个是农民,一个是医生。
一天,库克的儿子摔断了腿。库克带他去找医生。医生有个妹妹是史密斯的妻子。农民没有结过婚,他养着许多母鸡。米勒经常去农民家里买鸡蛋。警察每天都能见到史密斯,因为他们是邻居。
请问,他们4人个中,谁是警察?谁是木匠?谁是农民?谁是医生?
这是我的分析方法及答案:
由于涉及人名和职业较多,变来变去,很容易混乱。由于我想到用方程式来解决。设警察为A,木匠为B,农民为C,医生为D,库克为N1,米勒为N2,史密斯为N3,卡特为N4,根据条件,得方程式为:
D≠N1 库克(N1)带他去找医生(D)
C≠N3 …史密斯(N3)的妻子(农民没结婚)
D≠N3 医生(D)有个妹妹是史密斯(N3)的妻子
C≠N1 农民(C)没有结过婚(自然也没有儿子)
C≠N2 米勒(N2)经常去农民(C)家里买鸡蛋
A≠N3 警察(A)每天都能见到史密斯(N3)
首先解得B=N3,C=N4,由于D≠N1,那么D必然等N2,N3,N4,由于己解出N3、N4,那么D=N2,最后,自然解出A=N1
即答案为:
A=N1
B=N3
C=N4
D=N2
下面用交叉表的方法来解决这个问题,如下图:
库克 | 米勒 | 史密斯 | 卡特 | |
警察 | 1 | 0 | 0 | 0 |
木匠 | 0 | 0 | 1 | 0 |
农民 | 0 | 0 | 0 | 1 |
医生 | 0 | 1 | 0 | 0 |
如上面交叉表表示,标0处表示两者不相关,标1处表示两者有关联。
通过描述语句,分析出某人肯定不是哪一职业,这时就在某个人这一列和某职业这一行的交叉处标上0,一一排除,即可得到上面这个交叉表。
如表中第一行的1表示库克是警察。
版权声明:本文出自 chen_qiuge 的51Testing软件测试博客:http://www.51testing.com/?210431
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。