题目如下:
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯中的一个。以下为4个人的供词:
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说。
已知3个人说了真话,1个人说了假话,根据这个信息写一个程序来确定到底谁是凶手。
有兴趣的请贴出代码。
正确答案近期贴出。
首先考虑的是使用穷举法解决这个问题。
对这种实际的问题,首先把问题转化为计算机可以理解发形式。
利用穷举,先假定凶手是A,然后去验证这四个人的说法,如果恰好实现了三个人说法为真,那么凶手就找到了,
如果凶手不是A,那么继续列举,直到得到答案为止。
代码如下:
#include<stdio.h>
int main()
{
char killer;
int i,sum=0;
int kag=0;
for(i=1;i<=4;i++)
{
killer=64+i;
sum=(killer!='A')+(killer=='C')+(killer=='D')+(killer!='D');
if(sum==3)
{
kag=1;
printf("killer is %c/n",killer);
break;
}
}
if(kag==0)
{
printf("cann't find killer!/n");
}
return 0;
}