今天上課,老師教了小易怎麼計算加法和乘法,乘法的優先順序大於加法,但是如果乙個運算加了括號,那麼它的優先順序是最高的。例如:
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
num=input()
num=num.split()
a=int(num[0])
b=int(num[1])
c=int(num[2])
#連乘r1,連加r2,先加後乘r3,先乘後加r4
r1=a+b+c
r2=a*b*c
r3=max((a+b)*c,a*(b+c))
r4=max(a*b+c,a+b*c)
print(max(r1,r2,r3,r4))
表示式求值
程式的說明見清華大學出版社 資料結構 c語言版 include include define stack init size 40 define stackincrement 20 define ok 1 define false 0 typedef structs stack typedef st...
表示式求值
既然是表示式求值,自然需要在記憶體中儲存計算結果以及中間值。在 用c語言寫直譯器 一 中提過 變數要求是若型別,而 c 語言中的 view plaincopy to clipboardprint?in basic io.h define memery size 26 typedef enum var...
表示式求值
寫了乙個下午,各種糾結,各種問,終於搞明白了。但是自己還是想出來的一點東西的。很爽歪歪的,哈哈。先貼第一次的 include include include include include includeusing namespace std char data 7 7 int sign char ...