[编程题] 表达式求值
时间限制:1秒
空间限制:262144K
今天上课,老师教了小易怎么计算加法和乘法,乘法的优先级大于加法,但是如果一个运算加了括号,那么它的优先级是最高的。例如:
1 2 3 4 |
|
现在小易希望你帮他计算给定3个数a,b,c,在它们中间添加"+", "*", "(", ")"符号,能够获得的最大值。
输入描述:
一行三个数a,b,c (1 <= a, b, c <= 10)
输出描述:
能够获得的最大值
输入例子1:
1 2 3
输出例子1:
9
#include <iostream>
#include <algorithm>
using namespace std;
int max_1(int a,int b){
return max(a+b,a*b);
}
int max_2(int a,int b,int c){
return max(max_1(max_1(a,b),c) , max_1(a,max_1(b,c)));
}
int main(){
int a,b,c;
cin>>a>>b>>c;
cout<<max_2(a,b,c)<<endl;
return 0;
}