C语言问题 又要麻烦大家了 这道题实在没有思路

警察办案时询问四个嫌疑犯人谁是主犯,四个嫌疑犯人回答分别如下:A说:不是我。B说:是C。C说:是D。D说;他(指C)胡说。一直四个嫌疑犯人中三个说的是是真话,一个人说的是... 警察办案时询问四个嫌疑犯人谁是主犯,四个嫌疑犯人回答分别如下:
A说:不是我。
B说:是C。
C说:是D。
D说;他(指C)胡说。
一直四个嫌疑犯人中三个说的是是真话,一个人说的是假话。编一个程序来帮助警察据已知信息,分析主犯是谁。
谁能帮我编个程序 谢谢
展开
 我来答
wo4wuhuiting
2011-04-30 · TA获得超过457个赞
知道小有建树答主
回答量:155
采纳率:100%
帮助的人:120万
展开全部
4个人有一个说假话,其他三个说真话。可以这样假设:假如A说的是真话,那么,会有可能的答案;如果A说的是假话的话,相应的也有相应的答案。当然这样的答案里边的人可能不止一个。然后确定4个人每个人说真话和说假话分别对应的嫌疑犯人。然后按顺序假定每个人说的是假话,剩下的是真话,在对应的答案中找有没有公共解。这样就造出了嫌疑犯人
A | B C D | A
B | C | A B D
C | D | A B C
D | A B C | D
可以看出,当C说的是假话的时候,A(B C D)B(C) C(A B C )D(A B C )交集为C
在程序中,可以用适当的数据表示每个人的答案,和根据答案分析出的真话和假话的嫌疑人。然后分别假设每个人说的是假话,然后看有没有公共的解,有的话,就是了.....
追问
不好意思啊  我要的是程序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
十步天下
2011-04-30 · TA获得超过287个赞
知道小有建树答主
回答量:214
采纳率:100%
帮助的人:246万
展开全部
循环问题。。。因为只有一个人说假话,可以依次假设A,B,C,D其中一个人说了假话,
然后反判断。当某个假设没有矛盾的时候,没错。。凶手就是他了。。你比柯南还柯南了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
永远的_gerrard
2011-04-30 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:126
采纳率:0%
帮助的人:0
展开全部
并查集,用来判断逻辑关系,可以上百科查一下,不过建议你先练一下基础的并查集
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式