首页 > 试题广场 >

表达式求值

[编程题]表达式求值
  • 热度指数:25472 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
今天上课,老师教了小易怎么计算加法和乘法,乘法的优先级大于加法,但是如果一个运算加了括号,那么它的优先级是最高的。例如:
1+2*3=7
1*(2+3)=5
1*2*3=6
(1+2)*3=9
现在小易希望你帮他计算给定3个数a,b,c,在它们中间添加"+", "*", "(", ")"符号,能够获得的最大值。

输入描述:
一行三个数a,b,c (1 <= a, b, c <= 10)


输出描述:
能够获得的最大值
示例1

输入

1 2 3

输出

9
JavaScript(Node) 😎题目:网易-表达式求值(枚举/dp)
//枚举 Math.max() =>over
const readline = require('readline')
const rl = readline.createInterface({
    input: process.stdin,
    ouput: process.stdout
})
let inArr = []
rl.on('line',line=>{
    if(!line) return
    inArr.push(line.trim())
    if(inArr.length === 1){
        let arr = inArr[0].split(' ').map(e=>+e)
        let a = arr[0],
            b = arr[1],
            c = arr[2]
        let res = Math.max(a+b+c,(a+b)*c,a+b*c,a*b+c,a*b*c,a*(b+c))
        console.log(res)
    }
})   


发表于 2020-02-26 11:31:32 回复(0)
var line=readline().split(' ')
var arr =line.sort(function(a,b){
    return a-b
})
var result=0
for(var i=0;i<arr.length;i++){
    if(arr[0]=='1'){
   result=(parseInt(arr[0])+parseInt(arr[1]))*parseInt(arr[2])
    }else{
        result=parseInt(arr[0])*parseInt(arr[1])*parseInt(arr[2])
    }
}
print(result)
发表于 2019-08-28 11:54:51 回复(0)