又一道无聊的逻辑题
有些无聊的、很简单的一道题目,可能有人以前看到过,跟爱因斯坦的“谁是养鱼人”的问题有些相似,但这个简单多了。同样的,百度能搜索到题目和答案,但还是那句话,自己做出来的才值得庆幸。有兴趣的发散下思维~五个朋友, 一夫,二郎,三吉,四祥,五平五个人,是青梅竹马的好朋友,如今长大成人,各自当上面包店老板,理发师,肉店老板,烟酒经销商和公司职员。(上面的名字和职业是任意安排的,所以不能跟名字互相对照!)
提示 :
1. 面包店老板不是三吉,也不是四祥。
2. 烟酒经销商不是四祥,也不是一夫。
3. 此外,三吉和五平住在同一栋公寓,隔壁是公司职员的家。
4. 三吉娶理发师的女儿时,二郎这光棍是他们的媒人。
5. 一夫和三吉有空时,就和肉店老板,面包店老板打牌。
6. 而且,每隔十天,四祥和五平一定要到理发店修个脸。
7. 但是,公司职员则一向自己刮胡子,从来不到理发店去。
问题 : 请将这五个人的名字和职业,连接起来! 如楼主所说,确实没有“谁是养鱼人”难!但是很有意思!
面包店:五平
理发店:一夫
肉店:四祥
烟酒:三吉
职员:二郎 头都大了!在下还是想不出来!看到楼上的答案,一脑子都是为什么??????? 确实挺简单:
(4,6)-->理发师是:一夫
排出一个,剩下的就好办了,
(3,7)-->职员是:二郎
接着可判出:面包店:五平
肉店:四祥
烟酒:三吉 一夫 理发师 二郎 公司职员 三吉烟酒店老板 四祥 肉店老板 五平 面包店。。。自己推出来的 不知道对不对 本帖最后由 gapkiller 于 2010-1-19 17:08 编辑
Dim $man = ["一夫", "二郎", "三吉", "四祥", "五平"]
Dim $career = ["面包", "理发", "肉店", "烟酒", "职员"]
; $man[$man]=$man[$man]
$msg=$man & " " & $man & " " & $man & " " & $man & " " & $man & @LF & @LF
For $career1=0 To 4
If check($career[$career1], "烟酒", "面包", "肉店") Then ContinueLoop
For $career2=0 To 4
If check($career[$career2],$career[$career1],"理发") Then ContinueLoop
For $career3=0 To 4
If check($career[$career3],$career[$career1],$career[$career2],"面包", "职员", "理发", "肉店") Then ContinueLoop
For $career4=0 To 4
If check($career[$career4],$career[$career3],$career[$career1],$career[$career2],"面包", "职员", "理发", "烟酒") Then ContinueLoop
For $career5=0 To 4
If check($career[$career5],$career[$career4],$career[$career3],$career[$career1],$career[$career2],"职员", "理发") Then ContinueLoop
$msg &= $career[$career1] & " " & $career[$career2] & " " & $career[$career3] & " " & $career[$career4] & " " & $career[$career5] & @LF
Next
Next
Next
Next
Next
MsgBox(0,"",$msg)
Func check( $v, $c1="1", $c2="", $c3="", $c4="", $c5="", $c6="", $c7="", $c8="", $c9="" )
For $i=1 To @NumParams-1
If $v=Eval("c"&$i) Then Return True
Next
Return False
EndFunc :face (29):楼上的太强了。。这么多的代码 楼上的楼上一直是个强人
另第三个条件我没用上 这种题看了就头疼 what mean?? i don't understand, 逻辑better, up顶:face (39): 这样的帖子,必须要顶。(哎,挣积分下载好难啊) 这样的帖子,必须要顶。(哎,挣积分下载好难啊)
页:
[1]