题解 | #24点游戏算法#

24点游戏算法

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

#include <iostream>
using namespace std;
#include <bits/stdc++.h>

vector<double>a(4);
bool flag = false;
vector<bool>used(4,false);
void dfs(int p, double res){
    if(flag) return;
    if(p == 4) {
        if(res == 24) {
            flag = true;
            return;
        }
    }
    for(int i = 0; i < 4; i++){
        if(used[i] == true) continue;
        used[i]=true;
        dfs(p + 1, res + a[i]);
        dfs(p + 1, res - a[i]);
        dfs(p + 1, res * a[i]);
        dfs(p + 1, res / a[i]);
        used[i]=false;
    }
    
}
void solve(){
    dfs(0,0);
    flag ? cout << "true\n" : cout << "false\n";
}
int main() {
    while (cin >> a[0]>>a[1]>>a[2]>>a[3]) { // 注意 while 处理多个 case
        flag = false;
        solve();
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

09-17 19:25
已编辑
太原理工大学 游戏测试
叁六玖:公司名发我,我要这个HR带我打瓦
我的秋招日记
点赞 评论 收藏
分享
笑着秋招😊:我一直认为努力有回报是一件很幸福很幸福的事情,恭喜你
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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