题解 | #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); });