问题:A,B,C和D人中有1个是小偷,审问中,A说:“我不是小偷”;B说:“C是小偷”;C说:“小偷肯定是D”;D说:“C在冤枉人”。其中有三人说真话,一人说假话。请编程找出谁说谎,谁是小偷
'用1 2 3 4 分别代表 A B C D Dim m(1 To 4) m(1) = "234" '是B/C/D m(2) = "3" '是C m(3) = "4" '是D m(4) = "123" '是A/B/C
For i = 1 To 4 '假设小偷为i 真话数% = 0 For j = 1 To 4 '在假设小偷条件下,验证说话真假 If InStr(m(j), CStr(i)) Then 真话数% = 真话数% + 1 Next j If 真话数% = 3 Then '如果3个为真话,1个为假话 MsgBox "小偷是" & mid("ABCD",i,1) End If Next i 如果你对A,B,C和D人中有1个是小偷,审问中,A说:“我不是小偷”;B说:“C是小偷”;C说:“小偷肯定是D”;D说:“C在冤枉人”。其中有三人说真话,一人说假话。请编程找出谁说谎,谁是小偷这个问题有好的意见或
建议,请留言
|