今天上课,老师教了小易怎么计算加法和乘法,乘法的优先级大于加法,但是如果一个运算加了括号,那么它的优先级是最高的。例如:
1 2 3 4 |
|
现在小易希望你帮他计算给定3个数a,b,c,在它们中间添加"+", "*", "(", ")"符号,能够获得的最大值。
输入描述:
一行三个数a,b,c (1 <= a, b, c <= 10)
输出描述:
能够获得的最大值
示例1
输入
1 2 3
输出
9
c++
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int a, b, c;
cin>>a>>b>>c;
int Max = a+b+c;
Max = max(Max, a*b*c);
Max = max(Max, a+b*c);
Max = max(Max, (a+b)*c);
Max = max(Max, a*b+c);
Max = max(Max, a*(b+c));
cout<<Max<<endl;
return 0;
}
python
abc=list(raw_input().split(' '))
a=int(abc[0])
b=int(abc[1])
c=int(abc[2])
print max(a+b+c,a*b*c,a+b*c,a*b+c,(a+b)*c,a*(b+c))
java
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] line = br.readLine().split(" ");
int a = Integer.parseInt(line[0]);
int b = Integer.parseInt(line[1]);
int c = Integer.parseInt(line[2]);
int max = 0;
max = a + b + c;
max = Math.max(max, a*b*c);
max = Math.max(max, a+b*c);
max = Math.max(max, (a+b)*c);
max = Math.max(max, a*b+c);
max = Math.max(max, a*(b+c));
System.out.println(max);
}
}