题解 | #24点游戏算法#

24点游戏算法

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

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

// 简单递归
// 对于每一个数字, 递归遍历加减乘除的情况, 直到剩下最后一个数字, 判断
// 除法的时候需要判断是否能整除
bool isTF(vector<int> nums, int last){
    if(nums.size() == 1){
        if(nums[0] == last){
            return true;
        }else{
            return false;
        }
    }
    bool flag = false;
    for(int i = 0; i < nums.size(); i++){
        vector<int> temp;
        for(int j = 0; j < nums.size(); j++){
            if(i != j){
                temp.push_back(nums.at(j));
            }
            
        }
        int now = nums.at(i);
        
        if(isTF(temp, last + now) || isTF(temp, last - now) || isTF(temp, last * now)){
            flag = true;
        }
        if(last % now == 0){
            if(isTF(temp, last / now)){
                flag = true;
            }
        }
    }
    return flag;

}

int main() {
    int a;
    vector<int> nums;
    while (cin >> a) { // 注意 while 处理多个 case
        nums.push_back(a);
        if(nums.size() == 4){
            cout << boolalpha << isTF(nums, 24) << endl;
            nums.clear();
        }
        
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

代码飞升_不回私信人...:啊喂笨蛋算法为什么写查找,线程池怎么放计网上去了,写动态规划真的不会被狠狠地制裁吗oi
点赞 评论 收藏
分享
10-25 19:38
已编辑
门头沟学院 嵌入式工程师
点赞 评论 收藏
分享
bg27强双非本,目前在学习golang后端gin框架部分,在b站找了一个轮子项目敲了一下,技术栈是gin&nbsp;+&nbsp;gorm&nbsp;+&nbsp;mysql&nbsp;+&nbsp;redis。我目前的想法是这一个月学习408和go八股以及刷算法然后在12月找个寒假实习然后大三下开始准备考研。我是考研意愿比较强烈,想问一下我是应该all&nbsp;in其中一个方向吗,我感觉我实习对我考研来说也是没什么帮助的好像。
牛客28967172...:毕业工作,考研,考公是完全不同的方向。 99%的人拼尽全力也只能把一个做好(能做好都已经是佼佼者了,比如进进大厂,考985或者考公) 如果你确定要考研可以不用学任何就业技术框架,也不用实习经验,刷题背知识点就行,但注意必须考92院校起步,因为这个年代双非硕毕业后完全不如双非本(互联网行业),可以说双非硕在互联网就业完全是负收益
投递哔哩哔哩等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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