【智力悬疑题】——【“找凶手”解法】

这篇具有很好参考价值的文章主要介绍了【智力悬疑题】——【“找凶手”解法】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

“找凶手”题目解法

“案件题目”💻

某地发生了一起凶杀案,警察通过排查确定杀人凶手必为4个嫌疑犯中的一个。以下为4个嫌疑犯的供词:
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说。
已知3个人说了真话,1个人说了假话。请编程来确定谁是凶手。

“案件分析”🕵️

我们已知的信息:
1、A、B、C、D中一定有1个人是凶手
2、A、B、C、D中3个人说真话,1个人说假话
从以上2个信息当中,我们去确定谁是凶手,可以采用假设法。

一、假设A是凶手(A说了假话)
A说:不是我。(假)
B说:是C。 (真) ——> 凶手是C
C说:是D。 (真) ——> 凶手是D
D说:C在胡说。(真) ——> 凶手不是D
很容易看出,B、C、D产生了矛盾,所以假设不成立,即A不是凶手。

二、假设B是凶手(B说了假话)
A说:不是我。 (真)
B说:是C。 (假)
C说:是D。 (真) ——> 凶手是D
D说:C在胡说。(真) ——> 凶手不是D
C、D产生了矛盾,所以假设不成立,即B不是凶手。

三、假设C是凶手(C说了假话)
A说:不是我。 (真) ——> 凶手不是A
B说:是C。 (真) ——> 凶手是C
C说:是D。 (假) ——> 凶手不是D
D说:C在胡说。 (真) ——> 凶手不是D
刚好满足3个人说真话,1个人说假话,假设成立,即C是凶手。

为了确保万无一失,我们进行第4次假设:
四、假设D是凶手(D说了假话)
A说:不是我。 (真)
B说:是C。 (真) ——> 凶手是C
C说:是D。 (真) ——> 凶手是D
D说:C在胡说。 (假)
很明显,这里B、C也产生了矛盾,假设不成立,即D不是凶手。

综上所述,凶手是C。

“案件破解”😍

我们假设,说了真话是1,说了假话是0,那么A、B、C、D 4个人说的话加起来就是1+1+1+0=3。
对A、B、C、D 4个人进行一次遍历,如果某一次4个人说的话加起来的值等于3,那么我们就找到了凶手。
具体代码如下:

#include<stdio.h>
int main()
{
	char killer = '0';
	for (killer = 'A' ; killer <= 'D';killer++)
	{
		if ((killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D')==3)
		{
			printf("凶手是:%c",killer);
		}
	}

	return 0;
}

总结

这道题不难,主要是要学会怎么把实际的问题转化成代码去执行。当我们理解了这种转化的思维,以后遇到类似的问题,都能迎刃而解。

制作不易,给个三连吧!!!😍😍😍

【智力悬疑题】——【“找凶手”解法】,C语言,# 循环,c语言文章来源地址https://www.toymoban.com/news/detail-642978.html

到了这里,关于【智力悬疑题】——【“找凶手”解法】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2235.两整数相加:19种语言解法(力扣全解法)

    力扣题目链接:https://leetcode.cn/problems/add-two-integers/ 给你两个整数  num1 和 num2 ,返回这两个整数的和。   示例 1: 示例 2:   提示: -100 = num1, num2 = 100 时间复杂度 O ( 1 ) O(1) O ( 1 ) 空间复杂度 O ( 1 ) O(1) O ( 1 ) AC代码 C++ C Python Python2 Java C# Javascript Ruby Swift Go Scala Kotlin Rust PHP

    2024年02月12日
    浏览(38)
  • 消失的数字(c语言多种解法)

    该题目取自力扣(LeetCode)面试题 17.04. 消失的数字 该题目主要考察时间复杂度的把握,题目如下: 数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗? 示例 1: 输入:[3,0,1] 输出:2 示例 2: 输入:[9,6,4,2,3,5,7,

    2024年02月21日
    浏览(37)
  • C语言-杨辉三角的三种解法-简单易懂篇

    这里我们先实现第二张图的这种杨辉三角,在第二张图的基础上加上对数字前面空格的控制就好了,这个不难实现,重点是先把杨辉三角成功的打印出来。 这里我们先给出第一种方法: 我们可以创建一个二维的数组,数组的第一行的元素和对角线的元素,全部位1,然后从第

    2024年02月04日
    浏览(42)
  • (C语言版)力扣(LeetCode)189. 轮转数组官方3种解法分析

    题目链接:轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 示例 2: 提示: 1 = nums.length = 105 -231 = nums[i] = 231 - 1 0 = k = 105 进阶: 尽可能想出更多的解决方案,至少有 三种 不同的方法可以解决这个问题。 你可以使用空间复杂度为

    2024年02月05日
    浏览(42)
  • 【C语言】杨辉三角常用且简单的两种解法(超详细解说)

    学习就是重复重复再重复!!! ​​​​​​​​​​​​​​ 目录  💙杨辉三角简介 ❤️解法1:数组法 💛思路实现 💓代码实现 💖前提准备  💜写入 💚输出 💗源代码  💕解法二:递归法 💘思路实现  🌟代码实现  ⭐️主函数 💥递归函数  ❄️源代码 🐇总结

    2024年02月05日
    浏览(38)
  • (C语言版)力扣(LeetCode)面试题 17.04. 消失的数字5种解法

    该题目取自力扣(LeetCode)面试题 17.04. 消失的数字 链接:消失的数字 该题目主要考察时间复杂度的把握,题目如下: 数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗? 注意:本题相对书上原题稍作改动 示例

    2023年04月14日
    浏览(41)
  • C语言题目的多种解法分享 2之字符串左旋和补充题

    有的时候,这个系列专栏中的解法之间并无优劣,只是给大家提供不同的解题思路 我决定将代码实现的过程写成注释,方便大家直接找到对应的函数,只有需要补充说明的知识才会单拿出来强调 这个系列的文章会更的比较慢,因为多种解法的需要慢慢收集、整理 实现一个函

    2024年02月13日
    浏览(57)
  • 华为OD机试真题目录汇总(C语言、C++、Java、Python、JS五种语言解法)2023 B卷

    本文是2024华为OD机试真题(C C++ Java Py JS) B卷 专栏的目录贴(定期更新华为OD各个时间阶段的机试真题,每日定时更新,本专栏每篇的文章都会将使用C语言、C++、Python、Java、JS五种语言进行更新解答,包含真题,思路分析,代码参考,每个题目的思路分析都非常详细,超过百字

    2024年02月13日
    浏览(54)
  • 谁是 “凶手” !

    近日,日本米花町发生了一起凶杀案,警察通过排查确定杀人凶手必为4个嫌疑犯中的一个。 以下为4个嫌疑犯的供词: A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说。 已知3个人说了真话,1个人说了假话。请编程来确定谁是凶手。 已知线索: A、B、C、D四人中有三人说

    2024年02月12日
    浏览(28)
  • AGI如何提高智力水平

    AGI(Artificial General Intelligence)是一种新型的人工智能系统,具有人类智能的多个方面,能够在各种不同的任务和环境中进行决策和执行。要提高AGI的智力水平,需要从多个方面进行研究和改进。 改进算法和模型:AGI的智力水平与其所采用的算法和模型密切相关。可以通过改

    2024年02月14日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包