趣味解题,在线等待,望大家帮忙解决!

airflight1981 2004-07-04 07:30:26
甲、乙、丙、丁、戊五个人要么是女排队员,要么是女篮队员。虽然他们自己都知道相互间的身份,但其他人不知道。在一次联欢会上,她们请大家根据她们说的话来推理判断谁是女排队员,谁是女篮队员。她们说的话如下:
甲对乙说:“你是女排队员”
乙对丙说:“你和丁都是女排队员”
丙对丁说:“你和乙都是女篮队员”
丁对戊说:“你和乙都是女排队员”
戊对甲说:“你和丙都不是女排队员”
教练说:“规定同队的人(即女排对女排、女篮对女篮)说的是真话,对异队的人说的是假话。”

请编程判断谁是女排队员,谁是女篮队员?
请大家帮忙写出代码并加以注释.
...全文
132 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
northwolves 2004-07-05
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer
Dim result(1) As String
result(0) = ":女排队员"
result(1) = ":女篮队员"
For a = 0 To 1
For b = 0 To 1
For c = 0 To 1
For d = 0 To 1
For e = 0 To 1
If (b = 0) = (a = b) And (c = 0 And d = 0) = (b = c) And (d = 1 And b = 1) = (c = d) And (e = 0 And b = 0) = (d = e) And (a = 0 And c = 0) = (e = a) Then MsgBox "甲" & result(a) & vbCrLf & "乙" & result(b) & vbCrLf & "丙" & result(c) & vbCrLf & "丁" & result(d) & vbCrLf & "戊" & result(e)
Next
Next
Next
Next
Next
End Sub
airflight1981 2004-07-05
  • 打赏
  • 举报
回复
高手!
airflight1981 2004-07-04
  • 打赏
  • 举报
回复
此题应该用穷举法解,正确结果应是11010,但不知为何我我还同时解出了其它结果
airflight1981 2004-07-04
  • 打赏
  • 举报
回复
甲应该肯定是女排的.
helanshan 2004-07-04
  • 打赏
  • 举报
回复
不好意思,我只解出乙和戊两名队员,不知道对不对?
Private Sub Form_Activate()
Dim a, b, c, d, e As Integer '甲=a、乙=b、丙=c、丁=d、戊=e、女排为1、女篮为0
If a = 1 Then
b = 1
ElseIf a = 0 Then
b = 0
If b = 1 Then
c = 1
d = 1
ElseIf b = 1 Then
c = 0
d = 0
If d = 1 Then
e = 1
b = 1
ElseIf d = 0 Then
e = 0
b = 0
If e = 0 Then
a = 0
c = 0
ElseIf e = 1 Then
a = 1
c = 1
If c = 0 Then
d = 0
b = 0
ElseIf c = 1 Then
d = 1
b = 1
End If
End If
End If
End If
End If
Print "甲="; a
Print "乙="; b
Print "丙="; c
Print "丁="; d
Print "戊="; e
End Sub
按照推理:丁是女排、甲是女篮、丙是女篮。。。呵呵。。。。。。
airflight1981 2004-07-04
  • 打赏
  • 举报
回复
请大家看我哪里写错了。其中0代表女排,1代表女篮。a,b,c,d,e分别代表甲、乙、丙、丁、戊:
Private Sub Form_Activate()
Dim a, b, c, d, e, a1, b1, c1, d1, e1 As Integer
For a = 0 To 1
For b = 0 To 1
For c = 0 To 1
For d = 0 To 1
For e = 0 To 1
If a + b + c + d + e <> 5 And a + b + c + d + e <> 0 Then
a1 = (b = 1) - (a = 1)
b1 = (c = 1 And d = 1) - (b = 1 And c = 1)
c1 = (d = 0 And b = 0) - (c = 0 And d = 0)
d1 = (e = 1 And b = 1) - (d = 1 And e = 1)
e1 = (a = 0 And c = 0) - (e = 0 And a = 0)

If b1 = 0 And c1 = 0 And d1 = 0 And e1 = 0 And a1 = 0 Then

Print a; b; c; d; e
End If
End If
Next e
Next d
Next c
Next b
Next a
End Sub

airflight1981 2004-07-04
  • 打赏
  • 举报
回复
请大家帮忙啊,本人十分着急!
csdn2010 2004-07-04
  • 打赏
  • 举报
回复
访问地址: http://oliver88888888.go.nease.net/

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧