题解 | #24点游戏算法#

24点游戏算法

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

找到一种考虑到括号的解法了 function helper(list){

if(list.length === 1){
    return list[0] === 24
}else if(list.length > 1){
    for(let i=0;i < list.length;i++){
        for(let j=i + 1;j < list.length;j++){
            let m = list[i]
            let n = list[j]
            let arr = i > 0 ? list.slice(0,i) : []
            arr = arr.concat(list.slice(i+1,j)).concat(list.slice(j+1))
            let res1 = helper(arr.concat(m+n))
            let res2 = helper(arr.concat(m-n))
            let res3 = helper(arr.concat(m*n))
            let res4 = helper(arr.concat(n-m))
            let res5 = (n % m ===0) && helper(arr.concat(n / m))
            let res6 = (m % n ===0) && helper(arr.concat(m / n))
            if(res1 || res2 || res3 || res4 || res5 || res6){
                        return true
            }
        }
    }
    return false
}

} let list = readline().split(' ').map(item => parseInt(item)) print(helper(list))

全部评论

相关推荐

牛客717484937号:双飞硕没实习挺要命的
点赞 评论 收藏
分享
09-25 10:34
东北大学 Java
多面手的小八想要自然醒:所以读这么多年到头来成为时代车轮底下的一粒尘
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务