C趣味程序百例(16)迷语博士的难题(1)

文章作者 100test 发表时间 2007:03:10 17:31:35
来源 100Test.Com百考试题网


53.迷语博士的难题(1)
诚实族和说谎族是来自两个荒岛的不同民族,诚实族的人永远说真话,而说谎族的人永远说假话。迷语博士是个聪明的人,他要来判断所遇到的人是来自哪个民族的。
迷语博士遇到三个人,知道他们可能是来自诚实族或说谎族的。为了调查这三个人是什么族的,博士分别问了他们的问题,这是他们的对话:
问第一个人:“你们是什么族?”,答:“我们之中有两个来自诚实族。”第二个人说:“不要胡说,我们三个人中只有一个是诚实族的。”第三个人听了第二个人的话后说:“对,就是只有一个诚实族的。”
请根据他的回答判断他们分别是哪个族的。
*问题分析与算法设计
假设这三个人分别为A、B、C,若说谎其值为0,若诚实,其值为1。根据题目中三个人的话可分别列出:
第一个人: a&.&.a b c==2||!a&.&.a b c!=2
第二个人: b&.&.a b c==1||!b&.&.a b c!=1
第三个人: c&.&.a b c==1||!c&.&.a b c!=1
利用穷举法,可以很容易地推出结果。
*程序与程序注释
#include
void main()
{
int a,b,c.
for(a=0.a<=1.a ) /*穷举每个人是说谎还是诚实的全部情况*/
for(b=0.b<=1.b ) /*说谎:0 诚实:1*/
for(c=0.c<=1.c )
if((a&.&.a b c==2||!a&.&.a b c!=2) /*判断是否满足题意*/


相关文章


C趣味程序百例(16)黑与白
计算机等级考试报考指南河南介绍
06年4月全国计算机等级考试二级Access考试试卷(原题)
C趣味程序百例(16)迷语博士的难题(1)
国家计算机等级考试全国承办机构
计算机等级考试二级Access填空题及答案
C趣味程序百例(16)谁是窃贼
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛