24点游戏算法(c++每日一练)

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

问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利
输入:
4个1-10的数字。[数字允许重复,但每个数字仅允许使用一次,测试用例保证无异常数字]
输出:
true or false

#include<iostream>
#include<vector>
using namespace std;
bool is(vector<float>a, int num, int key)
{
	if (a.size() == 0)
	{
		return key == num;
	}
	for (int i = 0; i < a.size(); i++)
	{
		vector<float>b = a;
		b.erase(b.begin()+i);
		if (is(b, num + a[i], key) || is(b, num - a[i], key) || is(b, num * a[i], key) || is(b, num / a[i], key))
		{
			return true;
		}
	}
	return false;
}
int main()
{
	vector<float>a(4, 0);
	while (cin >> a[0] >> a[1] >> a[2] >> a[3])
	{
		if (is(a, 0, 24))
		{
			cout << "true" << endl;
		}
		else
		{
			cout << "false" << endl;
		}
	}
}

 

24点c++ 我有一个算24点的c++:它有一个bug,倒数第八行当输入的是不符合规则的字符时,它会输出好多个“Input illege, Please input again:”(如下图)求大佬帮助修改,尽量写的详细一些。 阅读详情

相关推荐

24点游戏(C++)

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

qq_43165874的博客 1607

24点游戏—ACM

题目描述 问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利 输入: 4个1-10的数字。[数字允许重复,但每个数字仅允许使用一次,测试用例保证无异常数字] 输出: trueorfalse 输入描述: 输入4个int整数 输出描述: 返回能否得到24点,能输出true,不能输出false 示例1 输入 7 2 1 10 输出 true 算法实现 ...

weixin_38850997的博客 553

24点游戏 c++

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

qq_44710356的博客 955

C++ 实现计算24点

原理 暴力枚举所有的情况,运算符号4个,加减乘除 + - * / ,整数数字4个。所需要枚举的次数: 数字顺序:4个数的全排列,4! = 24。 运算符号:4个数需要3个符号,每个可选4种,43 = 64。 加括号方式:((AB)C)D、(A(BC))D、(AB)(CD)、A((BC)D)、A(B(CD)),共5种。 枚举次数 24*64*5 实现细节 全排列枚举由库函数 next_perm...

落叶秋风早的博客 1万+

24点游戏递归法

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

qq_36691353的博客 3301

24点游戏算法

问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利 输入: 4个1-10的数字。[数字允许重复,测试用例保证无异常数字] 输出:(或者求得24点的表达式) True or False 问题分析: 24点游戏作为扑克牌中最经典的游戏,也是平时经常玩的益智游戏。对于此题主要是用穷举的思想,再加上一点点实行的编程技巧,令代码更简洁明晰。本代码主要是利用符号的不断变化,

shengabc的专栏 1090

每日一练之24点游戏算法

24点游戏算法 OJ 地址:24点游戏算法 #include <iostream> #include <algorithm> using namespace std; bool ret = false; void count24(int index, int curRes, int num[]) { if(curRes == 24) { ret = true; return; } if(ret || curRes &g

qq_41033011的博客 431

C++实现24点算法:全面解析

递归算法是一种通过函数自身调用自身来解决问题的方法。它将一个大问题分解为若干个规模较小的同类问题,并且这些子问题之间相互独立。递归算法具有两个基本特点:基准情形(Base Case):是递归能够停止继续调用自身的条件,通常为问题规模最小的情况。递归步骤(Recursive Step):在此步骤中,原问题被分解为若干个更小的子问题,并且调用相同算法来解决这些子问题。递归算法的流程图可以表示为:graph TDA[开始] --> B{检查基准情形}

weixin_34471637的博客 825

C++语言实现 24点小游戏

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

qq_42302466的博客 2427

C++实现算24点游戏的算法设计与源码分析

本文还有配套的精品资源,点击获取 简介:本文介绍了如何使用C++编程语言解决算24点游戏问题。该游戏要求玩家通过加、减、乘、除运算及括号的使用,使四张扑克牌上的数字运算结果为24。文章详细讲解了递归算法和回溯法的原理,并通过枚举运算符和递归函数的编写,来尝试所有可能的运算顺序,最终确定是否可以得到结果24。在这个过程中,还需考虑如何有效剪枝以减少不必要的计算。文章还提供了编...

weixin_34438187的博客 1322

C++实现24点算法完整源码

24点游戏,也称为算24游戏,是一种广泛流行的数学智力游戏。该游戏的目标是通过加、减、乘、除四种基本运算,使得四个数字(通常取1至13)运算的结果为24。该游戏不仅考验玩家的数学计算能力,还考察对运算顺序的理解,以及在有限条件下寻找最佳解决方案的能力。递归算法是一种在解决问题时,可以自我调用自身的算法。递归算法一般包含两个部分:基本情况(base case)和递归情况(recursive case)。基本情况是递归停止的条件,而递归情况则是算法将问题分解为更小子问题的过程。

weixin_42315569的博客 933

【C++】24点游戏

提前bb:采用的ide是vc++ 6.0 ,并且是通过24点游戏.cpp包含Judge.h、compute.h、menu.h3个文件 一、题目分析 24点游戏是经典的纸牌益智游戏。 游戏规则: 从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决2...

好好学习天天向上✿✿ヽ(°▽°)ノ✿ 1640

C++计算24点的简单程序

本文实例为大家分享了C++计算24点的的具体代码,供大家参考,具体内容如下 近来家庭作业里有24点的题目,为了找出所有可能的组合,就写了个简单的程序: 1. 运行程序 2. 输入4个整数,比如:3  3  7  8 3. 显示所有可能的组合 代码: #include "assert.h" #include <iostream> double operate(double num1, double num2, int op) { assert(op >= 0 && op < 4); if(op == 0){ return num1 + num2; } else if(op == 1

C++实现24点游戏

/* 时间:2017年4月8日 作者:靳程煜 实现功能:24点游戏 实现方法:用C++完成,用到栈存储多项式,用文件保存玩家的信息,计算玩家输入的多项式答案用到了递归算法, 用栈存储用户输入的多项式 */ #include #include #include #include #include #include #define SIZE 40 #define

小白 3891

C++实现简单24点游戏

主要为大家详细介绍了C++实现简单24点游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

银河麒麟Arm64 v10 sp1系统QT5.12.8离线环境配置全攻略

本文详细介绍了在银河麒麟Arm64 v10 sp1系统上配置QT5.12.8离线开发环境的完整流程。从安装包获取、依赖检查到环境变量配置,逐步指导开发者解决飞腾处理器架构下的常见问题,包括OpenGL库冲突、中文乱码处理等,特别适合军工、政务等需要离线部署的场景。

weixin_26899659的博客 504

每日一练之24点运算

24点运算 OJ 地址:24点运算 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200825145020644.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMD #include <iostream> #include <map> using namespace st

qq_41033011的博客 484

深入解析CAN2.0A与CAN2.0B协议:帧格式与通信机制对比

本文深入对比了CAN2.0A与CAN2.0B协议的核心差异,重点解析了11位标准帧与29位扩展帧的帧格式、标识符长度及通信机制。文章阐述了CAN2.0B向下兼容的特性,并探讨了在汽车电子、工业控制等复杂网络中,如何根据项目需求、兼容性及实时性要求,在标准帧与扩展帧之间做出合理选择。

weixin_29163797的博客 392

C++算24点

C++算24点 好了,说了呢么多(其实还没说,对吧?),直接贴代码: /* Alex 2019.1.30 */ #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; #include &lt;iterator&gt; #include &lt;c...

guozirui12的博客 3997

LPC546xx USB接口VBUS阈值设计:从原理到实践,解决冷启动与可靠性问题

在嵌入式USB接口设计中,VBUS信号不仅是电源线,更是设备连接检测与电源管理的核心。其电压阈值直接决定了USB物理层(PHY)能否正确识别主机并建立有效会话。理解VBUS的会话有效电压(Votg_sess_valid)与PHY有效电压(VBUS_valid)等关键参数,是确保接口稳定性的基础。这些参数影响着设备枚举的成功率、通信稳定性以及长期可靠性。在工程实践中,尤其是对于集成PHY的微控制器如NPC LPC546xx系列,VBUS的连接方案(直接连接或通过稳压器)需要根据设备供电模式(自供电/总线供电)

weixin_30915275的博客 399

pycharm添加Anaconda解释器显示不出来

因为我之前下载的是pycharm最新版本2024.1的,所以我抱着试一试的心态卸载重装了2021.3.3的,创建新文件的时候立刻就自己识别好了conda环境。就是图中画圈的地方,之前一直显示为python的图标,但是再Python Interpreter后面跟的路径确实是我下载anaconda的地方。另外一种方法就是使用Virtualenv Environment方式配置,但是我的pycharm还是没有识别出conda的图标。首先是这位的方法,先添加系统解释器,再重启,但是我的图标还是python。

2202_75803271的博客 4006
上一篇: 生产者与消费者场景的循环队列,用信号量实现(信号量)
下一篇: udp通信的实现
三少爷的剑!
博客等级 码龄8年 156粉丝 188原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三少爷的剑!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值