#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
#define EXCHANGE(a,b) \
({typeof(a) _tmp; \
_tmp=a; \
a=b; \
b=_tmp;})
void permute_opt(vector<int> opt,vector<int> permlist,int index){
if(index==3){
int result;
int ERROR=0;
char save[3];
result=permlist[0];
for(int i=0;i<3;i++){
switch(opt[i]){
case 0:
result=result+permlist[i+1];
save[i]='+';
break;
case 1:
result=result-permlist[i+1];
save[i]='-';
break;
case 2:
result=result*permlist[i+1];
save[i]='*';
break;
case 3:
if(result%permlist[i+1]==0){
result=result/permlist[i+1];
save[i]='/';
}else{
ERROR=1;
}
break;
}
}
if(result==24&&ERROR==0){
cout<<"(("<<permlist[0]<< save[0] \
<<permlist[1]<<")" << save[1] \
<<permlist[2]<<")" << save[2] \
<<permlist[3]<<"=24"<<endl;
}
}else{
for(int i=0;i<4;i++){
opt[index]=i;
permute_opt(opt,permlist,index+1);
}
}
return;
}
void permute(vector<int> permlist, int index){
int i,vsize;
vector<int> opt;
opt.resize(3);
vsize=permlist.size();
if((index==vsize-1))
permute_opt(opt,permlist,0);
else{
permute(permlist,index+1);
for(i=index+1;i<vsize;i++){
EXCHANGE(permlist[i],permlist[index]);
permute(permlist,index+1);
}
}
return;
}
int main(){
int i,X;
vector<int> permlist;
for(i=0;i<4;i++){
cin>>X;
permlist.push_back(X);
}
permute(permlist,0);
return 0;
}
先生成数的排列 再生成运算符号子集
但没消除重复项,懒了
分享到:
相关推荐
这是一个二十四点小程序,功能分成二十四点游戏和二十四点计算器两个部分。目标及其实现如下。 1. 目标:控制台输入4个数字,产生一组解 实现:【24点计算机---一个结果】 2. 目标:测试所有二十四点问题,给出...
scratch图形化少儿编程24点小游戏
二十四点小游戏,用c++实现的。实现了见面化,有输入选项,当输入四个数字后,点击确定。就会在文本框输出所有能组成24的组合。如果计算不出来,则说明不能算出24点,则在文本框不显示任何内容!
给你四张牌,算24点! 本资源有算24点的具体算法、程序以及讲解!
基于Java的Android应用程序开发-24点游戏源码+详细项目说明.zip 基于Java的Android应用程序开发-24点游戏源码+详细项目说明.zip 基于Java的Android应用程序开发-24点游戏源码+详细项目说明.zip 【项目介绍】 该资源...
24点游戏代码(完整的有界面),可以下载参考,代码简单易懂,希望你们喜欢
这是第一个24点,大家可以参考,改进; 大家互相学习,谢谢 作者QQ2051510483
寻找四个小于13的数混合运算为24的程序
微信小程序24点计算游戏(源代码+截图)微信小程序24点计算游戏(源代码+截图)微信小程序24点计算游戏(源代码+截图)微信小程序24点计算游戏(源代码+截图)微信小程序24点计算游戏(源代码+截图)微信小程序24点计算游戏(源...
自动求解24点,利用树形结构
这是我们利用java编写的24点小程序,生成的可执行文件。 为了得到一个24点的小游戏,首先我们需要正确的获取外界的输入,包括他们对数字、符号的...2.判断四个数字之间所有组成24点的可能性。(剪枝版:得到一种结果)
这是用C语言解决24点问题的源文件,学习算法的初学者或者对24点有兴趣的朋友可以看看
java速算24点Applet程序
步骤更清晰,思路更明了; 升级版24点; 希望大家支持一下
计算24点的python程序。例: Input: $ python z24.py 1 5 5 5 Output: 5*(5-(1/5)) end.
C++二十四点游戏 全部结果都有,而且去掉了重复项,而且是可视化的结果。基本算法就是利用数字和运算符的双重递归。代码清晰。任给四个1~9(或1~13)数字,列出计算结果等于24的所有算式。去掉明显的重复算式,比如9...
Delphi 24点游戏实例代码,这是个图片版的24点游戏源码。读取第一个运算符的位置以得到表达式的第一个数字 function AnyFirstPos(Str: string): Integer; //读取最后一个运算符的位置以得到表达式的最后一个...
制作了一个关于24点游戏的解法的一个文档,里面对于10以内的24点的所有可解游戏都给出了至少一种解法。希望对从事相关领域研究的同志们有所帮助。
可以使用eclipse运行24点卡牌、游戏 自带源程序 作用是让4个数相加得24
微信小程序之24点计算游戏 这是我第一次尝试用小程序开发的小游戏。 游戏难度分初、中、高三个等级,默认初级;每局游戏自动生成4个随机数(已经验证可算出24点,超过2种算法的算初级,只有一种为高难度,只有两种的...