一道趣味逻辑推理题,大家帮忙算算

有以下已知条件:1,有5栋5种颜色的房子2,每栋房子里面主人国籍不同3,这5个人每人只喝一个牌子的饮料,只抽一个牌子的烟,只养一种宠物并且各不相同根据以下线索作出答案:1... 有以下已知条件:
1,有5栋5种颜色的房子
2,每栋房子里面主人国籍不同
3,这5个人每人只喝一个牌子的饮料,只抽一个牌子的烟,只养一种宠物
并且各不相同
根据以下线索作出答案:
1,英国人住在红色房子里
2,瑞典人养了一只狗
3,丹麦人喝茶
4,绿房子在白房子左边
5,绿房子主人喝咖啡
6,抽PALLMALL烟的人养了一只鸟
7,黄色房子主人抽DLLNHILL烟
8,住在中间房子的人喝牛奶
9,挪威人住在第一间
10,抽混合烟的人住在养猫人旁边
11,养马人住在抽DLLNHILL烟人旁边
12,抽BLUEMASTER烟的人喝啤酒
13,德国人抽PRZNCE烟
14,挪威人住在蓝房子旁边
15,抽混合烟的人邻居喝矿泉水
请问:谁养鱼呢????

请大家给出推理过程
展开
无名尐鬼
2008-06-02 · TA获得超过7605个赞
知道小有建树答主
回答量:788
采纳率:0%
帮助的人:1081万
展开全部
使用Asp程序来解答

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
Dim Color
Num = Array(1,2,3,4,5)
Country = Array("英国人","瑞典人","丹麦人","德国人","挪威人")
Drink = Array("茶","咖啡","牛奶","啤酒","水")
Smking = Array("PALL MALL","DUNHILL","BLUE MASTER","PRINCE","混合")
Pet = Array("狗","鸟","猫","马","鱼")
House = Array("红房子","绿房子","黄房子","蓝房子","白房子")
%>
1. 有5栋5种颜色的房子
2. 每一位房子的主人国籍都不同
3. 这5个人每人只喝一个牌子的饮料, 只抽一个牌子的香烟, 只养一种宠物
4. 没有人有相同的宠物, 抽相同牌子的香烟, 喝相同的饮料
已知: <br>
<% info = split("1. 英国人住在红房子里|2. 瑞典人养了一条狗|3. 丹麦人喝茶|4. 绿房子在白房子左边|5. 绿房子主人喝咖啡|6. 抽PALL MALL烟的人养了一只鸟|7. 黄房子主人抽DUNHILL烟 |8. 住在中间那间房子的人喝牛奶 |9. 挪威人住在num=1房子 |10. 抽混合烟的人住在养猫人的旁边| 11. 养马人住在DUNHILL烟的人旁边| 12. 抽BLUE MASTER烟的人喝啤酒 |13. 德国人抽PRINCE烟 |14. 挪威人住在蓝房子旁边 |15. 抽混合烟的人的邻居喝矿泉水","|")
Response.Write(join(info,"<br>"))
rt = true
xx = 0
Dim Arr(81)
Dim ArrInfo(6,81)

function Getstr()
For i = 1 to 5
For j = 0 to 4
For k = 0 to 4
For l = 0 to 4
For m = 0 to 4
For n = 0 to 4
nm = i
cty=country(j)
Drk=Drink(k)
smk = Smking(l)
hr = house(m)
pt=pet(n)
Call check(nm,cty,drk,smk,hr,pt)
Next
Next
Next
Next
Next
Next
End Function

Response.write "<br>"
getStr

%>
<%
Sub check(nm,cty,drk,smk,hr,pt)

Dim rt
rt=true
If cty="英国人" Then
If hr <> "红房子" Then
Exit Sub
End If
End If

If cty="瑞典人" Then
IF pt <> "狗" Then
Exit Sub
End if
End If

If pt = "狗" Then
IF cty<>"瑞典人" Then
Exit Sub
End if
End If

If cty="丹麦人" Then
IF drk <> "茶" Then
Exit Sub
End if
End If

If drk = "茶" Then
IF cty<>"丹麦人" Then
Exit Sub
End if
End If

If hr="绿房子" Then
IF drk <> "咖啡" Then
Exit Sub
End if
End If

If drk = "咖啡" Then
IF hr<>"绿房子" Then
Exit Sub
End if
End If

If pt = "鸟" Then
IF smk<>"PALL MALL" Then
Exit Sub
End if
End If

If smk="PALL MALL" Then
IF pt <> "鸟" Then
Exit Sub
End if
End If

If smk = "DUNHILL" Then
IF hr<>"黄房子" Then
Exit Sub
End if
End If

If hr="黄房子" Then
IF smk <> "DUNHILL" Then
Exit Sub
End if
End If

If drk = "牛奶" Then
IF nm<>3 Then
Exit Sub
End if
End If

If nm=3 Then
IF drk <> "牛奶" Then
Exit Sub
End if
End If

If cty="挪威人" Then
IF nm <> 1 Then
Exit Sub
End if
End If

If nm = 1 Then
IF cty <> "挪威人" Then
Exit Sub
End if
End If

If SMK="BLUE MASTER" Then
IF drk <> "啤酒" Then
Exit Sub
End if
End If

If drk = "啤酒" Then
IF SMK<>"BLUE MASTER" Then
Exit Sub
End if
End If

If cty="德国人" Then
IF smk <> "PRINCE" Then
Exit Sub
End if
End If

If smk = "PRINCE" Then
IF cty<>"德国人" Then
Exit Sub
End if
End If

If NM = 2 Then
IF hr <> "蓝房子" Then
Exit Sub
End if
End If

If hr="蓝房子" Then
IF NM <> 2 Then
Exit Sub
End if
End If

If SMk = "混合" And pt="猫" Then
Exit Sub
End If

If SMk = "混合" And Drk="水" Then
Exit Sub
End If

If pt="马" And SMk = "DUNHILL" Then
Exit Sub
End If

ArrInfo(0,xx) = nm
ArrInfo(1,xx) = cty
ArrInfo(2,xx) = Drk
ArrInfo(3,xx) = Smk
ArrInfo(4,xx) = hr
ArrInfo(5,xx) = pt
ArrInfo(6,xx) = xx
xx = xx + 1
End Sub

Dim n1,n2,n3,n4,n5
n1=0
n2=0
n3=0
n4=0
n5=0

For i = 0 to ubound(arrInfo,2)
For j=0 to 6
'Response.write(arrInfo(j,i)&".")
Next
Select Case arrInfo(0,i)
Case 1
n1 = n1 + 1
Case 2
n2 = n2 + 1
Case 3
n3= n3 + 1
Case 4
n4 = n4 + 1
Case 5
n5 = n5 + 1
End Select
'Response.Write("<br/>")
Next

Dim arrInfo1(),arrInfo2(),arrInfo3(),arrInfo4(),arrInfo5()
Redim arrInfo1(6,n1-1)
Redim arrInfo2(6,n2-1)
Redim arrInfo3(6,n3-1)
Redim arrInfo4(6,n4-1)
Redim arrInfo5(6,n5-1)
x1=0
x2=0
x3=0
x4=0
x5=0
For i = 0 to ubound(arrInfo,2)
Select Case arrInfo(0,i)
Case 1
For j=0 to 6
arrInfo1(j,x1) =arrInfo(j,i)
Next
x1 = x1 + 1
Case 2
For j=0 to 6
arrInfo2(j,x2) =arrInfo(j,i)
Next
x2 = x2 + 1
Case 3
For j=0 to 6
arrInfo3(j,x3) =arrInfo(j,i)
Next
x3 = x3 + 1
Case 4
For j=0 to 6
arrInfo4(j,x4) =arrInfo(j,i)
Next
x4 = x4 + 1
Case 5
For j=0 to 6
arrInfo5(j,x5) =arrInfo(j,i)
Next
x5 = x5 + 1
End Select
Next

For i = 0 to ubound(arrInfo1,2)
For j = 0 to ubound(arrInfo2,2)
For k = 0 to ubound(arrInfo3,2)
For l = 0 to ubound(arrInfo4,2)
For m = 0 to ubound(arrInfo5,2)
If chkR(i,j,k,l,m) = True Then
Response.Write("<br/>==============================================================<br>")
Response.Write(arrInfo1(0,i)&"."&arrInfo1(1,i)&"."&arrInfo1(2,i)&"."&arrInfo1(3,i)&_
"."&arrInfo1(4,i)&"."&arrInfo1(5,i)&"."&arrInfo1(6,i)&"<br>")

Response.Write(arrInfo2(0,j)&"."&arrInfo2(1,j)&"."&arrInfo2(2,j)&"."&arrInfo2(3,j)&_
"."&arrInfo2(4,j)&"."&arrInfo2(5,j)&"."&arrInfo2(6,j)&"<br>")

Response.Write(arrInfo3(0,k)&"."&arrInfo3(1,k)&"."&arrInfo3(2,k)&"."&arrInfo3(3,k)&_
"."&arrInfo3(4,k)&"."&arrInfo3(5,k)&"."&arrInfo3(6,k)&"<br>")

Response.Write(arrInfo4(0,l)&"."&arrInfo4(1,l)&"."&arrInfo4(2,l)&"."&arrInfo4(3,l)&_
"."&arrInfo4(4,l)&"."&arrInfo4(5,l)&"."&arrInfo4(6,l)&"<br>")

Response.Write(arrInfo5(0,m)&"."&arrInfo5(1,m)&"."&arrInfo5(2,m)&"."&arrInfo5(3,m)&_
"."&arrInfo5(4,m)&"."&arrInfo5(5,m)&"."&arrInfo5(6,m)&"<br>")
Response.Write("<br/>================================================================<br>")
Response.Flush()
End If
Next
Next
Next
Next
Next

Function ChkR(i,j,k,l,m)
for n=0 to 6
if arrInfo2(n,j) = arrInfo1(n,i) Or arrInfo3(n,k) = arrInfo1(n,i) Or arrInfo4(n,l) = arrInfo1(n,i) Or arrInfo5(n,m) = arrInfo1(n,i) Then
chkR = False
Exit Function
End If

if arrInfo1(n,i)=arrInfo2(n,j) Or arrInfo3(n,k) = arrInfo2(n,j) Or arrInfo4(n,l) = arrInfo2(n,j) Or arrInfo5(n,m) = arrInfo2(n,j) Then
chkR = False
Exit Function
End If

if arrInfo2(n,j) = arrInfo3(n,k) Or arrInfo1(n,i) = arrInfo3(n,k) Or arrInfo4(n,l) = arrInfo3(n,k) Or arrInfo5(n,m) = arrInfo3(n,k) Then
chkR = False
Exit Function
End If

if arrInfo2(n,j) = arrInfo4(n,l) Or arrInfo3(n,k) = arrInfo4(n,l) Or arrInfo1(n,i) = arrInfo4(n,l) Or arrInfo5(n,m) = arrInfo4(n,l) Then
chkR = False
Exit Function
End If

if arrInfo2(n,j) = arrInfo5(n,m) Or arrInfo3(n,k) = arrInfo5(n,m) Or arrInfo4(n,l) = arrInfo5(n,m) Or arrInfo1(n,i) = arrInfo5(n,m) Then
chkR = False
Exit Function
End If
next

'抽混合烟的人住在养猫人的旁边
If arrInfo1(3,i)="混合" Then
If arrInfo2(5,j) <> "猫" Or arrInfo2(2,j) <> "水" Then
chkR = False
Exit Function
End If
End If

If arrInfo2(3,j)="混合" Then
If arrInfo1(5,i) <> "猫" And arrInfo3(5,k) <> "猫" Then
chkR = False
Exit Function
End If

If arrInfo1(2,i) <> "水" And arrInfo3(2,k) <> "水" Then
chkR = False
Exit Function
End If

End If

If arrInfo3(3,k)="混合" Then
If arrInfo2(5,j) <> "猫" And arrInfo4(5,l) <> "猫" Then
chkR = False
Exit Function
End If

If arrInfo2(2,j) <> "水" And arrInfo4(2,l) <> "水" Then
chkR = False
Exit Function
End If
End If

If arrInfo4(3,l)="混合" Then
If arrInfo3(5,k) <> "猫" And arrInfo5(5,m) <> "猫" Then
chkR = False
Exit Function
End If

If arrInfo3(2,k) <> "水" And arrInfo5(2,m) <> "水" Then
chkR = False
Exit Function
End If
End If

If arrInfo5(3,m)="混合" Then
If arrInfo4(5,l) <> "猫" Then
chkR = False
Exit Function
End If

If arrInfo4(2,l) <> "水" Then
chkR = False
Exit Function
End If
End If

'养马人住在DUNHILL烟的人旁边
If arrInfo1(5,i)="马" Then
If arrInfo2(3,j) <> "DUNHILL" Then
chkR = False
Exit Function
End If
End If

If arrInfo2(5,j)="马" Then
If arrInfo1(3,i) <> "DUNHILL" And arrInfo3(3,k) <> "DUNHILL" Then
chkR = False
Exit Function
End If
End If

If arrInfo3(5,k)="马" Then
If arrInfo2(3,j) <> "DUNHILL" And arrInfo4(3,l) <> "DUNHILL" Then
chkR = False
Exit Function
End If
End If

If arrInfo4(5,l)="马" Then
If arrInfo3(3,k) <> "DUNHILL" And arrInfo5(3,m) <> "DUNHILL" Then
chkR = False
Exit Function
End If
End If

If arrInfo5(5,m)="马" Then
If arrInfo4(3,l) <> "DUNHILL" Then
chkR = False
Exit Function
End If
End If

'绿房子在白房子的左边
If arrInfo1(4,i)="绿房子" Then
If arrInfo2(4,j)<>"白房子" Then
chkR = False
Exit Function
End If
End If

If arrInfo2(4,j)="绿房子" Then
If arrInfo3(4,k)<>"白房子" Then
chkR = False
Exit Function
End If
End If

If arrInfo3(4,k)="绿房子" Then
If arrInfo4(4,l)<>"白房子" Then
chkR = False
Exit Function
End If
End If

If arrInfo4(4,l)="绿房子" Then
If arrInfo5(4,m)<>"白房子" Then
chkR = False
Exit Function
End If
End If
chkR = True
End function
%>
==============================================================
1.挪威人.水.DUNHILL.黄房子.猫.11
2.丹麦人.茶.混合.蓝房子.马.15
3.英国人.牛奶.PALL MALL.红房子.鸟.20
4.德国人.咖啡.PRINCE.绿房子.鱼.50
5.瑞典人.啤酒.BLUE MASTER.白房子.狗.63

================================================================

参考资料: 爱因斯坦的智力题

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式