時間限制:1 s 記憶體限制:256 mb 測試點數:5
【題目描述】
小明在你的幫助下,破密了ferrari設的密碼門,正要往前走,突然又出現了乙個密碼門,門上有乙個算式,其中只有「(」,「)」,「0-9」,「+」,「-」,「*」,「/」,「^」*求出的值就是密碼。小明數學學得不好,還需你幫他的忙。(「/」用整數除法)
【輸入格式】
共1行,為乙個算式。
【輸出格式】
共1行,算式的答案,即密碼。
【樣例輸入】(3
+4)*
(6-2
)/(20
-6)【樣例輸出】
2
【提示】
100%的資料滿足:算式長度<=30 其中所有資料在2^31-1的範圍內,所有的算式均合法正確。
#include
using
namespace std;
intcalculate
(int m,
int n,
char b)
}int
main()
else
if(a ==
'(')
else
if(a ==
')')
char t = operate.
top();
while
(t !=
'(')
operate.
pop();
if(!operate.
empty()
) b = operate.
top();
else b =
'\0';}
else
if(a ==
'+'|| a ==
'-'|| a ==
'*'|| a ==
'/'|| a ==
'^')
if(importance[b]
>= importance[a])}
if(tt)
operate.
push
(a);
if(operate.
empty()
) b =
'\0'
;else
b = operate.
top();
}else}if
(a ==
'\n'
)else
break;}
}if(temp !=0)
number.
push
(temp)
; cout << number.
top();
return0;
}
不帶括號的表示式計算
一 表示式形式 2 3 6 3 5 二 問題 假設一中的表示式是一段程式可讀的字串,如何計算表示式的值 三 思路 1.建立兩個棧,分別為數字棧 和運算子棧 2.遍歷字串 3.當遇到數字將數字儲存到數字棧中 4.當遇到運算子時,比較運算子棧頂元素和當前運算子的優先順序 4.1若當前元素大於棧頂元素,將...
表示式括號匹配
假設乙個表示式有英文本母 小寫 運算子 和左右小 圓 括號構成,以 作為表示式的結束符。請編寫乙個程式檢查表示式中的左右圓括號是否匹配,若匹配,則返回 yes 否則返回 no 表示式長度小於255,左圓括號少於20個。輸入格式 一行 表示式 輸出格式 一行 yes 或 no 輸入樣例 1 2 x y...
表示式括號匹配
假設乙個表示式有英文本母 小寫 運算子 和左右小 圓 括號構成,以 作為表示式的結束符。請編寫乙個程式檢查表示式中的左右圓括號是否匹配,若匹配,則返回 yes 否則返回 no 表示式長度小於255,左圓括號少於20個。輸入格式 一行 表示式 輸出格式 一行 yes 或 no include incl...