甲、乙、丙、丁4个嫌疑人,只有1人为偷盗者。在审讯中,四人诚实或说谎都有可能。
甲:乙没偷,丁偷的;
乙:我没偷,丙偷的;
丙:甲没偷,乙偷的;
丁:我没偷。
请推断实际的偷盗者。
用VB怎么做
甲:乙没偷,丁偷的;
乙:我没偷,丙偷的;
丙:甲没偷,乙偷的;
丁:我没偷。
请推断实际的偷盗者。
用VB怎么做
解决方案 »
- 双精度问题,急急急,在线等
- c盘下的IE历史记录怎么获取
- VB6如何读取和写入修改XML文件,急需要!
- WAVECOM来电显示的问题~~100分伺候
- 请教各位高手:VB如何控制EXCEL文档的列宽,以及如何更改字体颜色,和有设置边框线。
- 急:要把数据库中的地址一个个打印到明信片上,该怎么办呢?
- 下拉菜单COMBOX赋值可以是小数码(非LONG型)
- 关闭数据库
- 关于与ListView关联的ImageList的Icon改变时,ListView的滚动条会"初始化"的问题
- 如何判断窗体上的某个控件是属于控件数组呢?
- 怎样让VB中TreeView中的多选框不可编辑
- WebBrowser的Document_Complete 为什么会多次触发
我想知道你的思路。
剩下来的,就可以交给VB了。
' 甲:乙没偷,丁偷的;
' 乙:我没偷,丙偷的;
' 丙:甲没偷,乙偷的;
' 丁: 我没偷
Dim i(3) As Boolean, n As Byte, m As Byte, k As Boolean, s As String
Me.Caption = ""
For n = 0 To 3
i(n) = True
For m = 0 To 3
If m <> n Then i(m) = False '初始条件:只有一个小偷
Next
If i(0) = True Then i(1) = False Else i(1) = True ' 丙:甲没偷,乙偷的;
If i(1) = False Then i(3) = True Else i(3) = False ' 甲:乙没偷,丁偷的;
If i(1) = True Then i(2) = False Else i(2) = True ' 乙:我没偷,丙偷的;
' 丁: 我没偷 丁的话没有任何意义.
k = False
For m = 0 To 3
If k = True And i(m) = True Then GoTo Nex '有1个以上的小偷,结论作废
If i(m) = True Then k = True
Next
For m = 0 To 3
If i(m) = True Then
Select Case m
Case 0
s = "甲可能是小偷"
Case 1
s = "乙可能是小偷"
Case 2
s = "丙可能是小偷"
Case 3
s = "丙可能是小偷"
End Select
If Me.Caption <> s Then Me.Caption = Me.Caption & s Else Me.Caption = s
End If
Next
Nex: NextEnd Sub
重发一次,抛砖引玉,看还其他跟好的办法没有.Option ExplicitPrivate Sub Form_Click()
' 甲:乙没偷,丁偷的;
' 乙:我没偷,丙偷的;
' 丙:甲没偷,乙偷的;
' 丁: 我没偷
Dim i(3) As Boolean, n As Byte, m As Byte, k As Boolean, s As String
Me.Caption = ""
For n = 0 To 3
i(n) = True
For m = 0 To 3
If m <> n Then i(m) = False '初始条件:只有一个小偷
Next
If i(0) = True Then i(1) = False Else i(1) = True ' 丙:甲没偷,乙偷的;
If i(1) = False Then i(3) = True Else i(3) = False ' 甲:乙没偷,丁偷的;
If i(1) = True Then i(2) = False Else i(2) = True ' 乙:我没偷,丙偷的;
' 丁: 我没偷 丁的话没有任何意义.
k = False
For m = 0 To 3
If k = True And i(m) = True Then GoTo Nex '有1个以上的小偷,结论作废
If i(m) = True Then k = True
Next
For m = 0 To 3
If i(m) = True Then
Select Case m
Case 0
s = "甲可能是小偷"
Case 1
s = "乙可能是小偷"
Case 2
s = "丙可能是小偷"
Case 3
s = "丙可能是小偷"
End Select
If Me.Caption <> s Then Me.Caption = Me.Caption & s Else Me.Caption = s
End If
Next
Nex: NextEnd Sub