C语言猜凶手及类似题目的实现示例_第1页
C语言猜凶手及类似题目的实现示例_第2页
C语言猜凶手及类似题目的实现示例_第3页
C语言猜凶手及类似题目的实现示例_第4页
C语言猜凶手及类似题目的实现示例_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

描述:日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词:A说:不是我。B说:是C。C说:是D。D说:C在胡说已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手。思路及分析:从来没有做过类似题目的同学第一次看见这道题,可能有点发懵。然后开始考虑假设,排列组合,枚举等等...但是这道题的代码结果会让你大吃一惊。A,B,C,D这四个人说的话?我们定义一个char变量killer来表示凶手。最能想到的就是如果某个人说的话是成立的话,将他的结果为1(类似于bool就是0AAkiller!=‘A’会返回1,否则,返回0。类似的,其他3个人说的话也可以这样来表示。最后,根据3个人说了真话,1个人说了假话得知返回的总和为3。比如,我们假设A就是凶手,那么根据四个人说的话,ABAB,C,D的情况还没有判断,只需要加一个循环就可以了。C语言代码如下:#include<stdio.h>intmain(void){charkiller='A';for(killer='A';killer<='D';killer++){if((killer!='A')+(killer=='C')+(killer=='D')+(killer!='D')==3){}printf("thekilleris%c",killer);}return0;}结果如下:现在,我们来看和它相似的第二道题目:描述:两个乒乓球队进行比赛,甲队为ABCXYZ打听比赛的名单,A说他不和X比,C说他不和Z比。请编程输出所有可能的对阵方案,并统计方案的个数。思路及分析:这道题和猜凶手那道题目的方法是一致的,都是直接把题目的文字描述转换为代码描述。直接使用for循环即可。代码如下:#include<stdio.h>intmain(void){charA=0;charB=0;charC=0;for(A='X';A<='Z';A++){for(B='X';B<='Z';B++){for(C='X';C<='Z';C++){if((A!='X')+(C!='Z')==2){if(A!=B&&B!=C&&C!=A){printf("AVS%c,BVS%c,CVS%c\n",A,B,C);}}}}}return0;}结果如下:第三道题目:描述:5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果:A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。思路及分析:暴力破解法即可。代码如下:#include<stdio.h>intmain(void){inta=0,b=0,c=0,d=0,e=0;for(a=1;a<=5;a++){for(b=1;b<=5;b++){for(c=1;c<=5;c++){for(d=1;d<=5;d++){for(e=1;e<=5;e++){if(((b==2)+(a==3)==1)&&//B第三((b==2)+(e==4)==1)&&((c==1)+(d==2)==1)&&((c==5)+(d==3)==1)&&((e==4)+(a==1)==1))//我第二,E第四//我第一,D第二//C最后,我第三//我第四,A第一{if(a*b*c*d*e==120){printf("%d%d%d%d%d\n",a,b,c,d,e);}}}}}}}return0;}总结:最后一道题目来看,出现了惊人的五个for循环。同时,每一个for循环都是循环5次

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论