24点游戏 程序(一)
来源:互联网 发布:矩阵论方保镕答案 编辑:程序博客网 时间:2024/05/22 13:55
无意间看见这个24点的网站http://www.24theory.com/solutions/allsolutions/,于是想起来把程序写写。
考虑到中缀表达式有括号的麻烦,所以打算用后缀表达式处理。
24点用后缀表达式的话,一共4个数字,3个运算符。
假设数字用1表示,运算符用2表示。
那么可能的计算方式就是类似
1111222
1112221
。。。
但是这样随便列举出来的不一定是合法的后缀表达式。
所以第一步,找出合法的包含4个数值,3个运算符的后缀表达式。
bool check(int data[]){ int len = 7; stack<int> suffix; for (int i = 0; i < len; i++) { if (data[i] == 1) { suffix.push(data[i]); } else if (data[i] == 2) { if (suffix.empty()) return false; if (suffix.top() == 1) { suffix.pop(); if (!suffix.empty() && suffix.top() == 1) { //suffix.pop(); } else { return false; } } else { return false; } } } return !suffix.empty() && suffix.top() == 1;}
void checkValidPost(){ int data[] = {1,1,1,1,2,2,2}; do { if (check(data)) { cout<<data[0]<<" "<<data[1]<<" "<<data[2]<<" "<<data[3]<<" "<<data[4]<<" "<<data[5]<<" "<<data[6]<<" "<<endl; } } while(next_permutation (data,data+7) );}
结果合法的后缀有5个。
后面将用这5个表达式进行穷举。
- 24点游戏 程序(一)
- 24点游戏 程序(二)
- 24点游戏 程序(三)
- Android 24点游戏 程序 源码
- 24点游戏的Matlab程序
- 一个强悍的算24点游戏的PHP程序
- 微信小程序 之 初体验(24点游戏)
- 每天一道编程题(一)----24点游戏
- 24点游戏代码
- 24点游戏
- 24点扑克牌游戏
- 24点游戏
- 24点游戏
- 《24点游戏》
- 24点游戏
- 24点游戏
- 24点游戏
- 24点游戏
- 第十周任务(二)
- cin与字符串输出
- web 弹出框 类似 android的toast的信息提示
- Linux学习笔记[2] - VMware Tools的安装方法
- 第11周报告1:
- 24点游戏 程序(一)
- 浏览器默认样式表
- 打包war的几种方法
- 第十二周任务
- Abstract Factory 抽象工厂模式(创建型模式)
- 十二周任务(二)
- HawkHost相关资源
- 十二周任务(三)
- VC6.0中,创建、调用 dll