问题及代码:
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:刘佳琦
* 完成日期:2014年 10 月 28 日
* 版 本 号:v1.0
*
* 问题描述:警察局抓住了A,B,C,D四名盗窃嫌疑犯,其中只有一人是小偷,在审问时,A说我不是小偷,B说C是小偷,C说D是小偷,D说C在冤枉好人。现在已知四人中有三人说的是真话,一人说到是假话,请问谁是小偷?
* 程序输出: 谁是小偷
*/#include <iostream>
using namespace std;
int main()
{
int a,b,c,d,count=0;
cout<<"谁是小偷:"<<endl;
for(a=0; a<=1; a++) //穷举a是否为小偷,是小偷为1,不是小偷为0
for(b=0; b<=1; b++)
for(c=0; c<=1; c++)
for(d=0; d<=1; d++)
if(c+d==1&&b+c==1&&a+b+c+d==3)//判断条件
{
++count;
cout<<"A="<<a<<" "<<"B="<<b<<" "<<"C="<<c<<" "<<"D="<<d<<endl;
}
return 0;
}
运行结果:
知识点总结:穷举法的应用
学习心得:用多了之后 较为熟练