文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C语言中的盗贼(小偷)问题详解

2024-04-02 19:55

关注

问题描述:警察审问4名窃贼嫌疑犯。现在已知,这4人当中仅有一名是窃贼,还知道这4个人中的每个人要么是诚实的,要么总是说谎。

这4个人给警察的回答如下。

甲说:“乙没有偷,是丁偷的。”

乙说:“我没有偷,是丙偷的。”

丙说:“甲没有偷,是乙偷的。”

丁说:“我没有偷。”

请根据这4个人的回答判断谁是窃贼。

分析过程:突破点从丁开始,因为根据丁的回答是无法判断的,而且我们可以发现甲乙丙三人的回答是十分相似的(如果不是ta,就是ta),我们现在先不去考虑甲乙丙谁说谎谁不说谎。我们先把甲乙丙丁设成ABCD,变量为1的是盗贼,那么

甲—B+D==1;

乙—B+C==1;

丙—A+B==1;

丁—A+B+C+D==1;

根据这四个人可以得到这四个条件

假定一个人是盗贼 代入这四个条件中

 第一种:

#include <stdio.h>
int main()
{
    int A,B,C,D;
    for(A=0; A<=1; A++)
        for(B=0; B<=1; B++)
            for(C=0; C<=1; C++)
                for(D=0; D<=1; D++)
                {
                    if(B+D==1&&B+C==1&&A+B==1&&A+B+C+D==1)
 
                        if(A)
                            printf("甲是窃贼\n");
                        else if(B)
                            printf("乙是窃贼\n");
                        else if(C)
                            printf("丙是窃贼\n");
                        else
                            printf("丁是窃贼\n");
                }
 
}

第二种:只用一个for循环就可以了 假定一个人为盗贼代入条件

#include <stdio.h>
int main()
{
    int i,A=1,B=0,C=0,D=0;
    for(i=0; i<=1; i++)
        if(B+D==1&&B+C==1&&A+B==1)
            break;
        else
        {
            if(i==1)
            {
                A=0;
                B=1;
            }
            if(i==2)
            {
                B=0;
                C=1;
            }
            if(i==3)
            {
                C=0;
                D=1;
            }
        }
    if(i==1)
        printf("甲是盗贼");
    if(i==2)
        printf("乙是盗贼");
    if(i==3)
        printf("丙是盗贼");
    if(i==4)
        printf("丁是盗贼");
 
}

到此这篇关于C语言中的盗贼(小偷)问题详解的文章就介绍到这了,更多相关C语言盗贼问题内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯