当前位置: 首页 > article >正文

编程解决有趣的智力题

目录

  • 预测比赛名次
  • 找凶手

预测比赛名次

题目描述:
在这里插入图片描述

思路:
核心就在于怎么用代码表示"只对了一半"
也就是一真一假 1和0 那就是1+0=1
其次怎么让名次唯一
让名次唯一:
我试了A+B+C+D+E==15 不行
我试了(A != B) && (B != C) && (C != D) && (D != E) 也不行
A * B * C * D * E == 120 这个值肯定是唯一的 彳亍!!

参考代码:

#include<stdio.h>

int main()
{
	int A = 0;
	int B = 0;
	int C = 0;
	int D = 0;
	int E = 0;

	//穷举所有名次可能
	for (A = 1; A <= 5; A++)
	{
		for (B = 1; B <= 5; B++)
		{
			for (C = 1; C <= 5; C++)
			{
				for (D = 1; D <= 5; D++)
				{
					for (E = 1; E <= 5; E++)
					{
						if (
							((B == 2) + (A == 3) == 1)
							&& ((B == 2) + (E == 4) == 1)
							&& ((C == 1) + (D == 2) == 1)
							&& ((C == 5) + (D == 3) == 1)
							&& ((E == 4) + (A == 1) == 1)
							&& (A * B * C * D * E == 120)
							)

						{
							printf("A:%d B:%d C:%d D:%d E:%d\n", A, B, C, D, E);
						}
					}
				}
			}
		}
	}
	return 0;
}

找凶手

题目描述:
在这里插入图片描述

思路1:
ABCD四个人 每个人都有0或者1两种取值
0代表清白 1代表是凶手
四个人的描述都加起来 结果应该是3 因为有三个人说真话
但是凶手只有一个 所以A+B+C+D = 1

思路1参考代码:

int main()
{
	int A = 0;
	int B = 0;
	int C = 0;
	int D = 0;
	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 (
						((A == 0) + (C == 1) + (D == 1) + (D == 0)) == 3
						&& (A + B + C + D) == 1
						)
					{
						printf("%d %d %d %d\n", A, B, C, D);

					}
				}
			}
		}
	}
	return 0;
}

思路2:
定义出killer 假设killer是A B C D
然后写出四个人对应的描述
加起来结果是3 看看哪个猜测是对的
其实这个代码更符合我们人的思考模式
在这里插入图片描述


http://www.kler.cn/a/371138.html

相关文章:

  • Chatper 4: Implementing a GPT model from Scratch To Generate Text
  • 【Unity-Animator】通过 StateMachineBehaviour 实现回调
  • C#图表性能的巅峰之选:LightningChart®.NET
  • 如何选择Ubuntu版本
  • CSS | 实现三列布局(两边边定宽 中间自适应,自适应成比)
  • 【微服务】面试题 5、分布式系统理论:CAP 与 BASE 详解
  • 17、电话号码的字母组合-cangjie
  • 中阳智能投资系统:量化科技引领未来投资之路
  • gbase8s之spring框架用druid中间件报语法错误
  • Linux安装es和kibana
  • git下载和配置
  • 探索Python与Excel的无缝对接:xlwings库的神秘面纱
  • GPT-Sovits-2-微调模型
  • 内网穿透之网络层ICMP隧道
  • CSS 修改图片颜色
  • 2024年10月HarmonyOS应用开发者基础认证全新题库
  • Objective-C 音频爬虫:实时接收数据的 didReceiveData_ 方法
  • 利用 Direct3D 绘制几何体—9.流水线状态对象
  • 为什么使用Node.js爬虫更优
  • DevOps赋能:优化业务价值流的实战策略与路径(上)
  • 直播电商企业“快反”模式与数字化营销转型:兼论开源 AI 智能名片 S2B2C 商城小程序的应用
  • 有效的括号
  • ASP.NET Core 应用程序的Startup笔记
  • upload-labs靶场Pass-21
  • 网络中的一些基本概念
  • GPT-Sovits-1-数据处理