题解 | #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')
}
查看13道真题和解析