第9周项目6辨别小偷

问题及代码:

/* 
*Copyright (c)2014,烟台大学计算机与控制工程学院 
*All rights reserved. 
*文件名称:count.cpp 
*作    者:单昕昕 
*完成日期:2014年10月27日 
*版 本 号: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=1; a>=0; a--)   //穷举a是否是小偷
        for(b=1; b>=0; b--)    //穷举b是否是小偷
            for(c=1; c>=0; c--)  //穷举c是否是小偷
                for(d=1; d>=0; d--) //穷举d是否是小偷
                            if((a==0&&c==1&&d==1)||(a==0&&d==1&&d==0)||(c==1&&d==1&&d==0)&&(a==0&&c==1&&d==0) )//判断输出成立的条件
                            {
                                ++count;
                                cout<<"方案"<<count<<": "<<endl;
                                cout<<"A"<<":"<<a<<endl;  //0代表不是小偷,1代表是小偷。
                                cout<<"B"<<":"<<b<<endl;
                                cout<<"C"<<":"<<c<<endl;
                                cout<<"D"<<":"<<d<<endl;
                            }
    return 0;
}

运行结果:

 

知识点总结:

四重循环。。

还不会用。。只能想到这样了。。

 

学习心得:

不会四重循环。不会把0/1变成否/是。(⊙o⊙)…

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值