题解 | #24点游戏算法#

24点游戏算法

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

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
 
bool check(vector<double>& nums, double result){
    if (nums.empty()) {
        return result == 24;
    }
    for(int i = 0; i < nums.size(); i++) { //遍历三个位置的所有可能运算符
        vector<double> res(nums);
        res.erase(res.begin() + i);
        if (check(res, result + nums[i])
           || check(res, result - nums[i]) 
           || check(res, result * nums[i])
           || check(res, result / nums[i]))
            return true;
    }
    return false;
}
 
int main(){
    vector<double> nums(4);
    while(cin >> nums[0] >> nums[1] >> nums[2] >> nums[3]){ //输入4个数字
        if (check(nums, 0)) {
            cout << "true" << endl;
        } else {
            cout << "false" << endl;
        }
    }
    return 0;
}
全部评论

相关推荐

程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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