题解 | #24点游戏算法#

24点游戏算法

https://www.nowcoder.com/practice/fbc417f314f745b1978fc751a54ac8cb

#include <iostream>
#include <vector>
using namespace std;

bool dfs(vector<double>&vec,double sum){
    if(vec.empty()) return sum==24;
    for(int i=0;i<vec.size();i++){
        vector<double> rest(vec);
        rest.erase(rest.begin()+i);
        if(dfs(rest,sum+vec[i]) ||
           dfs(rest,sum-vec[i]) ||
           dfs(rest,sum*vec[i]) ||
           dfs(rest,sum/vec[i])){
            return true;
        }
    }
    return false;
}

int main(){
    vector<double> vec(4);
    for(int i=0;i<4;i++){
        std::cin >> vec[i];
    }
    if(dfs(vec, 0)){
        std::cout << "true" << std::endl;
    }else{
        std::cout << "false" << std::endl;
    }
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务