题解 | #24点游戏算法#

24点游戏算法

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

const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});
// 这个绝对方便调试
rl.on("line", function (line) {
    const tokens = line.split(" ").map((i) => Number(i));
    let flag = false
    const dfs = (nums, res = null, str) => {
        if (res === 24) {
            flag = true;
            return
        }
        for (let i = 0; i < nums.length; i++) {
            const temp = [...nums];
            temp.splice(i, 1);
            const nextVal1 = res === null ? nums[i] : res + nums[i];
            const nextVal2 = res === null ? nums[i] : res - nums[i];
            const nextVal3 = res === null ? nums[i] : res * nums[i];
            const nextVal4 = res === null ? nums[i] : res / nums[i];
            dfs(temp, nextVal1, str + `${res}+${nums[i]}=${nextVal1} `);
            dfs(temp, nextVal2, str + `${res}-${nums[i]}=${nextVal2} `);
            dfs(temp, nextVal4, str + `${res}/${nums[i]}=${nextVal4} `);
            dfs(temp, nextVal3, str + `${res}*${nums[i]}=${nextVal3} `);
        }
        
    };
    dfs(tokens,null,'')
    console.log(flag);
});

全部评论

相关推荐

哥_留个offer先:跟他说,你这个最好用c#,微软就用c#Java不适合这个项目
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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