博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
24点问题
阅读量:6197 次
发布时间:2019-06-21

本文共 1858 字,大约阅读时间需要 6 分钟。

计算24点很简单的小程序,这一段用于解决不改变顺序的24点计算。不过最后总是有一些冗余的括号,这里为了通过SB的POJ3983,只写了一个去除最外层括号的函数,因为对这类问题的完善不太热心,就不关心去括号的事了

编译环境:G++4.6 under Fedora

/** This piece is used to solve the POJ3983.It's another 24-point game. The code piece is oriented from the Beauty of Programming, yet with adjustment to solve 3983 and to make it more like C++ style.Optimization still needed. Bug Log: Declared LIMEN as int, and equal() never returned true. **/ #include 
#include
#include
#include
#include
using namespace std; //Judge whether two double value is equal bool equal(double,double); //Try an operator and deal with num array and expressions inline bool tryExp(double *num,string *exp, const double &a,const double &b, const string &expA,const string &expB, int i,int n,char opt); //Recursive body of the solution,return true and stop if solution found bool findExp(double *,string*,int); //Test functions void printExp(string *exp,int n) {
for(int i=0;i
0); if(n==1) { if(equal(num[0],24)) return true; else return false; } for(int i=0;i
i;j--) { num[j]=num[j-1]; exp[j]=exp[j-1]; } num[i]=a; num[i+1]=b; exp[i]=expA; exp[i+1]=expB; } return false; } #include
void removeOutsideBrackets(string &exp){ char s[50]; strcpy(s,exp.c_str()); int len=strlen(s); if(s[0]=='(' && s[len-1]==')') strncpy(s,s+1,len-1); s[len-2]=0; exp=s; } int main() { double num[4]; string exp[4]; //Input the initial numbers. As we need expression form, //here input string and transform that to number later //will hit two birds with one stone. for(int i=0;i<4;i++) { cin>>exp[i]; num[i]=atoi(exp[i].c_str()); } if(findExp(num,exp,4)) { removeOutsideBrackets(exp[0]); cout<
<

 

转载于:https://www.cnblogs.com/qianyuming/archive/2011/11/14/2248000.html

你可能感兴趣的文章
NetCore入门篇:(九)Net Core项目使用Session及用Redis做分布式
查看>>
Asp.net页面之间传递参数的几种方法
查看>>
2016 年总结
查看>>
ubuntu 搭建 samba 服务器
查看>>
dotnet core 开发体验之Routing
查看>>
软件工程(2018)团体第四次作业
查看>>
点击/swt/直接跳转商务通(1)
查看>>
一阶段11.21
查看>>
[转]常常忘记却又常用的sql
查看>>
移动电商:一场颠覆性的革命
查看>>
HIP-HOP 漫画家 Skottie Young
查看>>
Web 页面性能分析笔记
查看>>
Cool Personal Website
查看>>
c# 安装windows服务
查看>>
【转载】面向对象起步 --- 封装、继承、多态
查看>>
项目Beta冲刺(团队1/7)
查看>>
类、对象、构造方法
查看>>
【Qt官方例程学习笔记】Raster Window Example(画笔的平移/旋转/缩放应用)
查看>>
win10配置 samba
查看>>
调制解调
查看>>