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

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 11:24
大家还是用ai改吧,我心疼得要死,就当花钱买教训吧,人家直接拿完钱就跑路了
程序员小白条:简历修改700....神奇,又不是帮你面试,咋的,简历修改从双非变92了还是没实习变成有大厂实习了
点赞 评论 收藏
分享
06-07 00:00
已编辑
腾讯_后端开发
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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