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