题目描述
今天上课,老师教了小易怎么计算加法和乘法,乘法的优先级大于加法,但是如果一个运算加了括号,那么它的优先级是最高的。例如:
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
参考代码:
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
int n=3;
vector<int>data(n);
for(int i=0;i<n;++i)
cin>>data[i];
sort(data.begin(),data.end());
int sum=data[0];
for(int i=1;i<n;++i)
{
if(data[i]==1 ||sum==1)
sum+=data[i];
else
sum=sum*data[i];
}
cout<<sum<<endl;
return 0;
}