24点游戏
2013-08-02 10:48
253 查看
// code.cpp : 定义控制台应用程序的入口点。 // editor: Visual C++ 2010 Ultimate // system: win7 x32 // create: 2013-08-02 10:46AM // author: starfish(海星) // remark: 转载自大神的文章片段,提交pongo需修改 #include "stdafx.h" #include <iostream> #include <string> #include <cmath> using namespace std; const double PRECISION = 1E-6; const int COUNT_OF_NUMBER = 4; const int NUMBER_TO_CAL = 24; double number[COUNT_OF_NUMBER]; string expression[COUNT_OF_NUMBER]; bool Search(int n); int _tmain(int argc, _TCHAR* argv[]) { for(int i=0;i<COUNT_OF_NUMBER; i++){ char buffer[20]; int x; cin>>x; number[i] = x; itoa(x, buffer, 10); expression[i] = buffer; } if(Search(COUNT_OF_NUMBER)){ cout<< "SUCCESS" <<endl; } else { cout<< "FAILURE" <<endl; } system("pause"); return 0; } bool Search(int n) { if(n==1){ if(fabs(number[0]-NUMBER_TO_CAL)<PRECISION){ cout<<expression[0]<<endl; return true; } else { return false; } } for(int i=0; i<n; i++){ for(int j=i+1; j<n; j++){ double a,b; string expa, expb; a = number[i]; b = number[j]; number[j] = number[n-1]; expa = expression[i]; expb = expression[j]; expression[j] = expression[n-1]; expression[i] = '(' + expa + '+' + expb + ')'; number[i] = a + b; if(Search(n-1)) return true; expression[i] = '(' + expa + '-' + expb + ')'; number[i] = a - b; if(Search(n-1)) return true; expression[i] = '(' + expb + '-' + expa + ')'; number[i] = b - a; if(Search(n-1)) return true; expression[i] = '(' + expa + '*' + expb + ')'; number[i] = a * b; if(Search(n-1)) return true; if(b!=0){ expression[i] = '(' + expa + '/' + expb + ')'; number[i] = a / b; if(Search(n-1)) return true; //-- 算分数24点 jkj --// expression[i] = '(' + expb + '/' + expa + ')'; number[i] = b / a; if(Search(n-1)) return true; } number[i] = a; number[j] = b; expression[i] = expa; expression[j] = expb; } } return false; }
相关文章推荐
- 穷举法解24点游戏
- 24点游戏算法
- 算法小记03-算24点游戏
- 庞果网 在线编程 24点游戏
- 编程之美--1.16 24点游戏
- Java编写的24点纸牌游戏
- 24点游戏7节课--第4节-引入扑克牌发牌出数
- javascript 24点游戏代码
- bzoj1215: [HNOI2003]24点游戏
- 24点游戏探秘系列4:趣味征解 (作者 ococo 2003/1/30)
- 24点游戏
- 24点扑克牌游戏——(含java源码)(GUI实现)
- 华为机试—24点游戏
- 24点游戏 程序(三)
- 24点游戏算法
- C语言:24点游戏
- UESTC - 1252 24点游戏 (DFS)好题
- 24点游戏
- ACdream 1740 - 哗啦啦族的24点游戏 (全排列DFS)
- 24点游戏c++