题解 | #24点运算#
24点运算
http://www.nowcoder.com/practice/7e124483271e4c979a82eb2956544f9d
const readline = require('readline') const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }) rl.on('line',(line)=>{ if(isJoker(line)){ // console.log(line) return console.log('ERROR') } while(/[ajqk]/i.test(line)){ line = transfer(line) } let arr = line.split(" ") let yArr = ['*', '+', '-', '/'] let str = '' let a = 0 for(i=0;i<4;i++){ for(j=0;j<4;j++){ for(q=0;q<4;q++){ // for(l=0; l<4; l++){ // console.log('l:', l) // for(m=0; m<4 && m!==l; m++){ // console.log('m:', m) // for(n=0; n<4 && n!==m && n!==l; n++){ // console.log('n:', n) // for(k=0; k<4 && k!==n && k!==m && k!==l; k++){ // console.log('k:', k) for(l=0; l<4; l++){ // console.log('l:', l) for(m=0; m<4; m++){ // console.log('m:', m) for(n=0; n<4; n++){ // console.log('n:', n) for(k=0; k<4; k++){ // console.log('k:', k) if(m == l || m == n || m === k || l === n || l === k || n === k){ continue } str = '(('+ arr[l] + yArr[i]+ arr[m] + ')' + yArr[j] + arr[n] + ')' + yArr[q]+arr[k] a = eval(str) // if(l==2&&m==3&&n==0&&k==1&&i==2&&j==0&&q==3){ // console.log(a) // console.log(str) // } if (24 === a){ // console.log(str) if(arr[l] == 1){ arr[l] = 'A' } if(arr[m] == 1){ arr[m] = 'A' } if(arr[n] == 1){ arr[n] = 'A' } if(arr[k] == 1){ arr[k] = 'A' } str = arr[l]+yArr[i]+arr[m]+yArr[j]+arr[n]+yArr[q]+arr[k] for(o=0;o<4;o++){ str = transferToW(str) } console.log(str) return } } } } } } } } console.log('NONE') return }) function isJoker(str){ return /joker/i.test(str) } function transfer(str){ return str.replace(/a/i, '1').replace(/j/i, '11').replace(/q/i, '12').replace(/k/i, '13') } function transferToW(str){ return str.replace(/11/, 'J').replace(/12/, 'Q').replace(/13/, 'K') }