题解 | #24点游戏算法#

24点游戏算法

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

function isGetCorrectVal(nums) {
    let flag = false;
    const limit = 24;
    function calc(list, result) {
        if (result > limit) return;
        if (result === limit) {
            flag = true;
            return;
        }
        for (let i = 0, len = list.length; i < len; i++) {
            let newList = list.slice();
            newList.splice(i, 1);
            if (result === 0) {
                calc(newList, list[i]);
            } else {
                calc(newList, result + list[i]);
                calc(newList, result - list[i]);
                calc(newList, result * list[i]);
                calc(newList, result / list[i]);
                calc(newList, list[i] - result);
                calc(newList, list[i] / result);
            }
        }
    }
    calc(nums, 0);
    return flag;
}
while (line = readline()) {
    print(isGetCorrectVal(line.split(' ').map(num => parseInt(num, 10))));
}

全部评论

相关推荐

10-11 17:30
湖南大学 C++
我已成为0offer的糕手:羡慕
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务