第4章--习题解析---逻辑思维(共8页).doc
《第4章--习题解析---逻辑思维(共8页).doc》由会员分享,可在线阅读,更多相关《第4章--习题解析---逻辑思维(共8页).doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上第4章 习题解析-逻辑思维13个人比饭量大,每个人说了两句话。 A说:B比我吃得多,C和我吃得一样多。 B说:A比我吃得多,A也比C吃得多。 C说:我比B吃得多,B比A吃得多。 事实上饭量越小的人讲对的话越多。请编程按饭量的大小输出3个人的顺序。 算法分析: 1)把每个人的饭量分别用整数1,2,3来表示,数字越大就表示这个人的饭量越大,由于题目中A说的话中提到了有可能两个人的饭量相同,也就是说代表3个人饭量的数字有可能相等。2)用一个三重循环来枚举每个人的饭量,分别用A,B,C表示这3个人的饭量。将这3个人说的话As,Bs,Cs写成表达式: As=(BA)+(C=A)
2、; Bs=(AB)+(AC); Cs=(CB)+(BA);3)根据题意,饭量越小的人讲对的话越多,也就是说,不存在两个人,其中一个人的饭量比另一个人小,且说对的话不比另一个人多。当变量满足这个条件时,就可以输出这组解了。 #include / 4-1-饭量比较参考程序 int main( ) int A,B,C,as,bs,cs; /定义3个变量,分别表示3个人 for (A=1;A=3;A+) / 枚举A for (B=1;B=3;B+) / 枚举B for (C=1;CA)+(C=A); bs=(AB)+(AC); cs=(CB)+(BA); if (!(A=B)&(as=bs)|(A=C
3、)&(as=cs) |(B=C)&(bs=cs)|(B=A)&(bs=as) |(C=A)&(cs=as)|(C=B)&(cs=bs) cout A= A endl; cout B= B endl; cout C= C endl; /输出结束 /循环结束 return 0; 输出结果:A=3 B=1 C=224名专家对4款赛车进行评论A说:2号赛车是最好的。 B说:4号赛车是最好的。 C说:3号不是最佳赛车。 D说:B说错了。 事实上:只有一款赛车最佳,且只有一名专家说对了,其他3人都说错了。请编程输出最佳车的车号,以及哪位专家说对了。 算法分析 根据题意,只有一款赛车最佳。这就有4种情况,可
4、以枚举这4种情况,采用循环结构,令变量为BestCar,取4个可能的车号。 将A,B,C,D说的话与BestCar联系起来,有As=(BcstCar=2);Bs=(BestCar=4);Cs=(BestCar!3);Ds=(BestCar!4);根据题意,只有一名专家说对,因此在程序中使用如下的判定条件:if (As+Bs+Cs+Ds=1)即可判定BestCar的取值,就是最佳车号,同时再测试As,Bs,Cs,Ds哪个取值为1,就输出该专家。 #include / 4-2, 最佳汽车参考程序 int main( ) int car,as,bs,cs,ds; for (car=1;car=4;c
5、ar+) / 枚举每款汽车 as=(car=2); bs=(car=4); cs=(car!=3); ds=!bs; if (as+bs+cs+ds=1) cout car car endl; if (as=1) cout A endl; if (bs=1) cout B endl; if (cs=1) cout C endl; if (ds=1) cout D endl; /输出结束 /循环结束 return 0; 输出结果:car 3 , 4号专家说对了 35位跳水高手参加10m高台跳水决赛,有好事者让5人据实力预测比赛结果。 A选手说:B第二,我第三; B选手说:我第二,E第四; C选手
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题 解析 逻辑思维
限制150内