题解 | #24点游戏算法#
24点游戏算法
http://www.nowcoder.com/practice/fbc417f314f745b1978fc751a54ac8cb
参考了别人的
/*HJ6724点游戏算法 dfs递归求解 */ #include<iostream> #include<vector> using namespace std; int dfs(vector<double>n,double result) { if(n.empty()) { if(result==24)return 1; else return 0; } else { for(int i=0;i<n.size();i++) { vector<double>a(n); a.erase(a.begin()+i); if(dfs(a,result+n[i])||dfs(a,result-n[i])||dfs(a,result*n[i])||dfs(a,result/n[i])) return 1; } return 0; } } int main() { vector<double>n(4); for(int i=0;i<4;i++) cin>>n[i]; if(dfs(n,0)) cout<<"true"<<endl; else cout<<"false"<<endl; }