天天看點

網易測評題-----表達式求值

今天上課,老師教了小易怎麼計算加法和乘法,乘法的優先級大于加法,但是如果一個運算加了括号,那麼它的優先級是最高的。例如:

1

2

3

4

1+23=7

1(2+3)=5

123=6

(1+2)3=9

現在小易希望你幫他計算給定3個數a,b,c,在它們中間添加"+", "", “(”, ")"符号,能夠獲得的最大值。

輸入描述:

一行三個數a,b,c (1 <= a, b, c <= 10)

輸出描述:

能夠獲得的最大值

輸入例子1:

1 2 3

輸出例子1:

9

代碼如下:

#include

using namespace std;

int main()

{

int a,b,c;

cin>>a;

cin>>b;

cin>>c;

while(a<1 || a>10 || b<1 || b>10 || c<1 || c>10)

{

cin>>a;

cin>>b;

cin>>c;

}

int m[6];

for(int w=0;w<6;w++)

{

m[w]=0;

};

m[0]=a+b+c;

m[1]=abc;

m[2]=(a+b)c;

m[3]=a(b+c);

m[4]=ab+c;

m[5]=a+bc;

int kd;
for(int dd=5;dd>=0;dd--)
{
    if(m[dd]>=m[dd-1])
    {
        kd=m[dd];
        m[dd]=m[dd-1];
        m[dd-1]=kd;
    }
}
cout<<m[0]<<endl;
           

};