24点问题判断

24点游戏(C++) 24点游戏 一.实验内容 24点游戏是经典的纸牌益智游戏。 常见游戏规则: 从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏。 基本要求: 随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式,用擅长的语言(C/C++/Java或其他均可)实现程序解决问题。 1.程序风格良好(使用... 阅读详情

从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏。

#include<iostream>
#include<cstdlib>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
	void Judge(float a[]);
	float num[4];
	while(cin>>num[0]>>num[1]>>num[2]>>num[3])
	{

		if(num[0]<1||num[0]>13||num[1]<1||num[1]>13||num[2]<1||num[2]>13||num[3]<1||num[3]>13)	//如果输入的数小于1或大于13重新输入
		{
			cout<<"input again:"<<endl;
			continue;
		}
		sort(num,num + 4);
		
		do
		{
			Judge(num);
			break;
		} while (next_permutation(num, num + 4)); //产生4个数的全排列*/
	}
	system("pause");
	return 0;
}

void Judge(float a[])
{
	float ans_1;
	float ans_2;
	float ans_3;
	string oper[4] = {"*","/","+","-"};
	for(int i = 0;i < 4;i++)
	{
		switch(i)
		{
			case 0: 
				ans_1 = a[0] * a[1];
				break;
			case 1:
				ans_1 = a[0] / a[1];
				break;
			case 2:
				ans_1 = a[0] + a[1];
				break;
			case 3:
				ans_1 = a[0] - a[1];
				break;
		}
		for(int j = 0;j < 4;j++)
		{
			switch(j)
			{
				case 0: 
					ans_2 = ans_1 * a[2];
					break;
				case 1:
					ans_2 = ans_1 / a[2];
					break;
				case 2:
					ans_2 = ans_1 + a[2];
					break;
				case 3:
					ans_2 = ans_1 - a[2];
					break;
			}
			for(int k = 0;k < 4;k++)
			{
				switch(k)
				{
					case 0: 
						ans_3 = ans_2 * a[3];
						break;
					case 1:
						ans_3 = ans_2 / a[3];
						break;
					case 2:
						ans_3 = ans_2 + a[3];
						break;
					case 3:
						ans_3 = ans_2 - a[3];
						break;
				}
				if(24 == ans_3)
				{
					cout<<a[0]<<oper[i]<<a[1]<<oper[j]<<a[2]<<oper[k]<<a[3]<<endl;
				}
			}
		}
	}
}

这个程序尚有一点问题,那就是虽然可以判断4个数是否可以由计算可得出24,也可以输出计算式,但是带不了括号,因此这个程序是不完整的。

C++ 24点游戏算法 原题链接:24点游戏算法_牛客题霸_牛客网 描述 给出4个1-10的数字,通过加减乘除运算,得到数字为24就算胜利,除法指实数除法运算,运算符仅允许出现在两个数字之间,本题对数字选取顺序无要求,但每个数字仅允许使用一次,且需考虑括号运算 此题允许数字重复,如3 3 4 4为合法输入,此输入一共有两个3,但是每个数字只允许使用一次,则运算过程中两个3都被选取并进行对应的计算操作。 输入描述: 读入4个[1,10]的整数,数字允许重复,测试用例保证无异常数字。 输出描述: 对于每组案例,输出一行表 阅读详情

相关推荐

【Pico手势开发实战】基于SteamVR串流与MRTK3的跨平台交互方案

本文详细介绍了在Pico设备上,结合SteamVR串流与微软MRTK3框架,实现高效跨平台手势交互开发的完整方案。该方案通过在PC端运行Unity项目并串流至头显,利用MRTK3封装的手势识别与交互组件,大幅提升了开发调试效率与性能上限,并确保了未来向其他OpenXR设备的良好兼容性。

weixin_29001683的博客 216

【编程|二十四点】关于编程解决二十四点的两种思路

【编程心得系列*24点】 写在前面:编程心得系列不谈具体问题的代码,只谈解决思路。 这是一个关于二十四点的软件。属于典型的先有目的再有初衷的软件。 在此之前我倒是写过一个解数独的软件。但那个的核心代码部分毕竟是抄袭的。这次是觉得对自己更有信心,也是想就此考验一下最近的编程学习,因而,挑选了看上去不是而很有难度的24点作为突破点,以此来在实践中进一步学习。   二十四点问题 输入:四个数...

蒸发杰作的博客 1万+

层层剥开Allegro skill--快速抓取并写入Allegro软件【呕血创作,转载注明】

Allegro skill eda pcb

qq_36492361的博客 1251

C++写算24点(续)

C++算24点 大家应该认识我吧?就是那个写24点的。(不认识https://blog.csdn.net/guozirui12/article/details/86709345) 今天我将再次讲C++算24点。 我说在前面:你必须会C++的基本知识(如for、while、函数、printf等)如果不会,我敢肯定你看不懂,只是把大妈(代码)给复制、粘贴而已,所以如果你不会,就关上这个网页,看别的去吧...

guozirui12的博客 786

通达信缠论中枢自动识别与画线实战指南

本文详细介绍了通达信缠论中枢自动识别与画线公式的实战应用。该工具通过严谨的算法逻辑,自动在K线图上标记出符合缠论定义的中枢区间,帮助投资者摆脱繁琐的手工画图,聚焦于价格与中枢的互动关系,从而高效识别趋势延续、背驰及第三类买卖点,提升缠论分析与交易决策的效率。

weixin_29267307的博客 662

RouterOS v7.6实战:5分钟搞定IPv6双栈配置(含光猫桥接避坑指南)

本文详细解析了在RouterOS v7.6系统中配置IPv6双栈网络的实战步骤,特别针对家庭网络光猫桥接模式下的常见问题提供了避坑指南。文章涵盖了从基础配置到企业级部署的进阶内容,包括IPv6前缀获取、DHCPv6客户端设置、路由通告以及安全优化,帮助用户充分利用v7.6版本在IPv6支持上的改进与优势。

embedding5hiker的博客 1279

编程之美————24点游戏算法

一,概述         二十四点是一种益智游戏,它能在游戏中锻炼人们的心算,它往往要求人们将四个数字进行加减乘除(允许使用括号)求得二十四。然后将四个数字的计算公式表示出来。 二,中缀表达式求解          最直接的方法就是采用穷举法,游戏中可用的运算符只有四种,四个数字每个只能使用一次。          1)不考虑括号情况          

wangyudong211的专栏 2526

深入解析路科验证V0实验lab1:SV接口与时钟块实战

本文深入解析了路科验证V0实验Lab1的核心内容,重点阐述了SystemVerilog接口与时钟块在验证环境搭建中的关键作用。通过拆解router_io接口设计、时钟块同步机制及程序块封装,详细讲解了如何构建稳定可靠的验证通信基础,并提供了复位时序分析与常见调试技巧,为后续复杂验证打下坚实基础。

peach的博客 430

经典二十四点程序算法

来源:http://www.xici.net/d190569991.htm 经典二十四点程序算法 --叶 宏   一、概述 算24点:任意给定四个整数,用加、减、乘、除以及适当的括号连接,无论顺序,使计算结果为24,也可能根本就无解。如何用程序简单实现找到算式是程序初学者关注的问题,百度上可以搜到许多这样的文章,有递归法、回溯法、穷举法。但穷举法最为简单、易于理解。 二、算法 穷举

smartboysboys的专栏 2万+

硬件工程师进阶之路:从电路基础到PCB设计实战核心技能

硬件电路设计是一项融合电路理论、器件特性与工程实践的复合型技术。一块稳定可靠的电路板,不仅需要正确的原理图,更依赖于合理的叠层规划、元器件布局与布线策略。在高速数字电路日益普及的今天,信号完整性、电源完整性与电磁兼容性设计已成为决定产品成败的关键因素,工程师需要深入理解阻抗匹配、回流路径、去耦电容布置等技术原理,并将理论灵活应用于通信设备、消费电子、工业控制等各类产品研发场景。PCB设计正是连接电原理图与可量产产品之间的核心枢纽,也是硬件工程师能力进阶过程中的分水岭技能。掌握从基础电路分析到高速PCB设计,

weixin_29183637的博客 261

空地多无人平台协同路径规划复现:从建模到Matlab仿真全解析

路径规划是机器人领域的核心基础技术,从单机避障到多平台协同,问题复杂度显著提升。空地协同规划融合无人机与无人车的异构优势,通过将地图分层建模为空中与地面栅格,并采用A*算法生成初始路径、B样条平滑以及改进遗传算法进行任务分配与时间同步优化,能够有效处理几何约束、运动学约束和避碰约束等。该技术广泛应用于区域巡逻、目标搜索、物资转运等任务场景,也是高校论文复现和工程仿真的常见课题。本文从问题建模、算法设计到Matlab代码结构,系统梳理了一套空地多无人平台协同路径规划的复现思路,同时给出坐标系校准、遗传算法收敛

weixin_32175665的博客 248

24点游戏-回溯

题目 给定一个长度为4的整数数组 cards 。你有 4 张卡片,每张卡片上都包含一个范围在 [1,9] 的数字。您应该使用运算符 [’+’, ‘-’, ‘*’, ‘/’] 和括号 ‘(’ 和 ‘)’ 将这些卡片上的数字排列成数学表达式,以获得值24。 题目链接 示例 输入: cards = [4, 1, 8, 7] 输出: true 代码 class Solution { // 把选的两个数删除,并且添加新的结果 public List<Double> get(L.

qq_42692908的博客 2648

飞腾D2000 BIOS编译避坑指南:PCIE拆分、S3电源与过温保护配置详解

本文详细解析飞腾D2000 BIOS编译中的关键配置技巧,包括PCIE拆分模式优化、S3电源管理适配及过温保护设置。通过实战案例和参数调优建议,帮助开发者规避常见陷阱,充分发挥国产高性能计算平台的硬件潜力。特别针对BIOS编译过程中的隐蔽问题提供解决方案。

weixin_33704234的博客 534

java通过减治法判断四个数能否生成24点问题

思路: 一开始我们随机生成四个数字A、B、C、D,选择其中任意一个数字,暂记为A; 将A和B、C、D进行加减乘除运算,并把结果存储起来; 由于每次都是选择的两张牌,并且最后运算出的结果都是一张牌,所以未知数规模在不断减小; 反复计算,直到得到24点即可; 实现代码: package ergodic; import java.util.*; /** * @ Author :he...

傲娇的何先生的博客 5989

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

hdu1427_速算24点 dfs(暴力枚举)

轻触即可跳转到HDU_1427 Problem Description 速算24点相信绝大多数人都玩过。就是随机给你四张牌,包括A(1),2,3,4,5,6,7,8,9,10,J(11),Q(12),K(13)。要求只用'+','-','*','/'运算符以及括号改变运算顺序,使得最终运算结果为24(每个数必须且仅能用一次)。游戏很简单,但遇到无解的情况往往让人很郁闷。你的任务就是针对每...

From now on...的Blogs 528

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

算24点问题

/ 交换以模拟运算。if (abs(lastResult - 24.0) < 1e-6) { // 使用精度判断,因为浮点数运算可能有误差。for (char op : "*/+-") { // 优先级:乘除优先于加减。核心算法将采用回溯法,尝试所有可能的运算组合,直到找到结果为24的表达式或确定不存在这样的表达式。if (index == 3) { // 如果已经处理完所有数字,检查结果是否为24。// 全局变量,用于标记是否找到结果为24的表达式。// 递归函数,用于尝试所有可能的运算组合。

2301_81511481的博客 462

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

24点算法

计算24点最简单有效的方法就是递归穷举法。 假如数组number[COUNT ]存放了要计算的数值(COUNT可以设为4或者其他)。 算法基本思想: 第一步:先从数组中选取两个数值number[i]和number[j],然后分别用"加/减/乘/除"进行计算,将得到的结果保存到数组中并替换number[i]的值,然后用数组最后一个值number[n-1]替换number[j]的值(即令numb

Tim's Blog 2959

24点问题

先算两个数,这两个数算的结果和剩余的n-2个数计算,也就是n-1个数计算,最终简化成1个数算24点。每次递归调用都减少了一个数字(因为它被用作了一个运算的结果),直到只剩下一个数字为止。2.每次递归调用时,都会减少一个数字(因为已经选择了一个数字进行运算),并尝试四种运算。3.如果在任何递归调用中找到了一个组合使得结果为24,则立即返回真(true)。1.在count24函数中,通过递归和回溯的方式尝试所有可能的数字和运算组合。4.检查四元组是否全为零,如果是,则跳出循环。2.进入无限循环,等待用户输入。

Triumphantlys的博客 266

HDU 1247 速算24点

1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #define CL(x, y) memset(x, y, sizeof(x)) 5 using namespace std; 6 const int INF = 1 <&lt...

weixin_30776273的博客 194

算24点预习

对于每种运算,它创建一个新的vector<double>类型的变量next_round,其中包含了除了这对数字之外的其他数字以及这对数字运算后的结果。24点游戏是一种数学游戏,目标是通过给定的四个数字(每个数字可以使用一次),使用加、减、乘、除四则运算,以及括号来改变运算顺序,使得最后的结果为24。具体来说,就是对于每一个数字,我们尝试把它和后面的数字用加减乘除四种运算连接起来,然后再对结果继续递归处理,直到处理完所有的数字。在递归的过程中,我们要注意运算的优先级,比如乘法和除法要比加法和减法先计算。

2401_83521651的博客 1820

回溯算法解决24点游戏问题

#include <iostream> #include <vector> #include <stack> using namespace std; #define SIZE 4 /********************************************************************************* 你有 4 张...

qq_43390943的博客 4339

java 4 7怎么算术运算,<b>java判断4个10以内的数字,通过四则运算得到24</b>[Java编程]...

赞助商链接本文“java判断4个10以内的数字,通过四则运算得到24[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:请你用java写一个办法,判断给定的4个数字,每个数值在1~10之间,通过+ - * / 运算,后果为24,每个数字必须利用且只能利用一次.网友供应的穷举法public class ...

weixin_39842955的博客 282

关于24点问题解法

这里写自定义目录标题 关于24点问题解法 先看题目: 给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式。现在的问题是,是否存在一种方式使得得到的表达式的结果等于24。 这里加减乘除以及括号的运算结果和运算的优先级跟我们平常的定义一致(这里的除法定义是实数除法)。 比如,对于5,5,5,1,我们知道5 * (5 – 1 / 5) = 24,因此可以得到24。又比如,对于1,1,4,2,我们怎么都不能得到24。 注意:输入数字的次序可以改变。 输入 输入数据包括多行,

weixin_52806898的博客 4865

算24

03 算24 描述 给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式。现在的问题是,是否存在一种方式使得得到的表达式的结果等于24。 这里加减乘除以及括号的运算结果和运算的优先级跟我们平常的定义一致(这里的除法定义是实数除法)。 比如,对于5,5,5,1,我们知道5 * (5 – 1 / 5) = 24,因此可以得到24。又比如,对于1,1,4,2,我们...

weixin_44351043的博客 1635

Python实现判断四个数能否实现24点游戏

Python实现判断4个数字能否实现24点游戏

m0_61018181的博客 2102

24点小游戏

一、题目内容 24点游戏是经典的纸牌益智游戏。 常见游戏规则: 从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏。 基本要求: 随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式,用擅长的语言(C/C++/Java或其他均可)实现程序解决问题。 1.程序风格良好(使用自定义注释模...

清举的博客 979
上一篇: 模拟图灵机实现乘二运算即(XN*2)
下一篇: 学生信息管理系统
could9
博客等级 码龄9年 5粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值