题解 | #24点游戏算法#
24点游戏算法
https://www.nowcoder.com/practice/fbc417f314f745b1978fc751a54ac8cb
#include <iostream>
#include <vector>
using namespace std;
bool dfs(vector<double> &vc, vector<bool> &used, double summ){
// cout << "summ = " << summ << endl;
if(summ == 24){
return true;
}
for(int i = 0; i < 4; ++i){
if(!used[i]){
used[i] = true;
if(dfs(vc, used, summ + vc[i])){
return true;
}else if(dfs(vc, used, summ - vc[i])){
return true;
}else if (dfs(vc, used, summ * vc[i])) {
return true;
}else if (vc[i] != 0 && dfs(vc, used, summ / vc[i])) {
return true;
}
used[i] = false;
}
}
return false;
}
int main() {
vector<double> vc(4, 0);
for(int i = 0; i < 4; ++i){
cin >> vc[i];
}
vector<bool> used(4, false);
if(dfs(vc, used, 0)){
cout << "true" << endl;
}else{
cout << "false" << endl;
}
return 0;
}
我看了半天硬是没看出我的解有什么问题,看了别人的解答才知道要用double啊
正浩创新EcoFlow公司福利 644人发布
