永发信息网

、甲,乙,丙,丁四个人中有一个人是小偷,请根据四个人的谈话判断谁是小偷?已知四个人中有一个人说假话

答案:6  悬赏:40  手机版
解决时间 2021-01-06 02:29
、甲,乙,丙,丁四个人中有一个人是小偷,请根据四个人的谈话判断谁是小偷?已知四个人中有一个人说假话
最佳答案
放一个按钮和一个label在form1上然后在窗体中复制进这些代码

Private Sub Command1_Click()
Cls
For x = 1 To 4
If (x <> 1) + (x = 3) + (x = 4) + (x <> 4) = -3 Then
T = Chr$(64 + x)
End If
Next x

Select Case T
Case "A"
Label1.Caption = "小偷是甲"
Case "B"
Label1.Caption = "小偷是乙"
Case "C"
Label1.Caption = "小偷是丙"
Case "D"
Label1.Caption = "小偷是丁"
End Select
End Sub

f5运行就可以了,如果不懂再问。
分析:可以采用枚举法,依次假设甲,乙,丙,丁是小偷,再根据他们的谈话找到关系式.由于有一个人说谎,所以四个关系式相加值为-3时即可找到小偷.
(X1)+(X=3)+(X=4)+(X4)=-3
全部回答
复杂点,可能好理解些。如下:
Private Sub CommandButton1_Click()
'有一个人说假话,有一个是小偷
'甲: 我不是小偷
'乙: 丙是小偷
'丙: 丁是小偷
'丁:丙说谎
Dim p(3) As Boolean '人是小偷
Dim s(3) As Boolean '说话是真话
For i = 0 To 3
personCount = 0
For j = 0 To 3 '初始,设其中一个是假话,其他是真话
If j = i Then s(j) = False Else s(j) = True
Next
'条件判断,按每一种情况下,是小偷的人都有谁
If s(0) Then p(0) = False Else p(0) = True
If s(1) Then p(2) = True Else p(2) = False
If s(2) Then p(3) = True Else p(3) = False
If s(3) Then p(3) = False Else p(3) = True
'统计是小偷的个数
For j = 0 To 3
If p(j) Then personCount = personCount + 1
Next
'等于1个的是正解,则打印
If personCount = 1 Then
For j = 0 To 3
Debug.Print "s(" & j & ")=" & s(j)
Next
End If
Next
End Sub
为什么值 等于 -3?(x=1) 若x=1 (x=1)返回的值是-1?
飞扬星星:丙说谎,说明乙没说谎,怎么可能是乙是小偷呢?
丙说谎,乙是小偷
丁不可能说谎,同理甲也不能,如果说谎,那就有两个小偷,那丙说谎,乙是小偷。
丙是小偷
如果甲说假话:则乙、丙都说了假话,不符合题意;
如果乙说假话:则丁也说了假话,不符合题意;
如果丁说假话:则乙和丙其中一个说了假话,也不符合题意;
所以,只有丙说了假话时,题意才符合。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
兰考县到正平多少公里
爱,是人类最美好的情感;爱,使人间充满温暖
JOJO童装这个地址在什么地方,我要处理点事
苹果官网查询翻新机鉴定为未激活正品新机什么
化学必采纳,如图哪一个部分是烷基
电气图中直埋管7ICC100代表什么意思
台州市椒江欠林节日灯有限公司怎么样?
请问饲料厂可以用UW系列阻旋料位开关吗?
2001年02月07日上午5:30的生辰八字
糖醋豆腐干怎么做如何做好吃
夏夜晴朗的夜晚,皓月当空,繁星点点,暖暖的
再次纠结,念量子力学到底是去德国还是美国
从毛庄到 管城回族区 郑州国际中原博览中心坐
春秋战国的时间起止是什么?
我的电脑有两根内存条,都是256MB的,规格是D
推荐资讯
晚上去吃烧烤日记150
英语语法辨析
有没有RK3128能用的固件
我QQ邮箱账号是多少
革命的革应用什么查字法来查共几画笔顺为什么
滦南有没有会计学校
湘乡装wifi多少钱
延边第一中学历任校长的介绍
小丽一道减法题中,错把减数3看成了8,结果得21
一首说曲歌 讲的是一个男孩跟一个女孩在玉米
你的为什么比别人的低那么多?
请问:什么叫茶谷?谢谢
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?