题解 | #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啊

全部评论

相关推荐

头像
不愿透露姓名的神秘牛友
04-08 00:50
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务