藍橋杯 ALGO 156 表示式計算(棧)

2021-07-29 01:52:00 字數 507 閱讀 9803

題意:計算表示式,只包含加減乖除和括號,其中除表示整除。

解題方案:通過兩個棧,乙個符號棧和乙個數值棧將中綴表示式轉換成字尾表示式並計算。

**參考:

#include #include #include #include #include #include #include #include #include #include #include using namespace std;

#define for(i,k,n) for(int i=k;ifu;//符號棧,只會存在(+-*/五種

stackshu;//數值棧

void js1()//碰到+-)這三個優先順序低的,將符號棧中的符號全部取出計算,直到碰到符號棧中的(

shu.push(n2);

}}void js2()//碰到*/這兩個優先順序高的,只將棧頂的*/取出來計算

shu.push(n2);

}}int main()

switch(s[i])

}cout<

藍橋杯 ALGO 92 演算法訓練 字首表示式

演算法訓練 字首表示式 時間限制 1.0s 記憶體限制 512.0mb 問題描述 編寫乙個程式,以字串方式輸入乙個字首表示式,然後計算它的值。輸入格式為 運算子 物件1 物件2 其中,運算子為 加法 減法 乘法 或 除法 運算物件為不超過10的整數,它們之間用乙個空格隔開。要求 對於加 減 乘 除這...

藍橋杯 演算法訓練 表示式計算

之前在學習棧的時候老師講過這個問題 思路就是 1.將表示式 中綴式 轉化成字尾式 2.進行字尾式的計算。思路看起來很簡單,但是實際在敲 的時候還是要注意很多問題。下面分享一下個人做法,可以改進之處還希望大家可以指出來,共同進步!一 將中綴式轉化為字尾式 個人採用的是邊輸入邊進行處理 首先設定兩個棧,...

藍橋杯 字尾表示式

問題描述 給定 n 個加號 m 個減號以及 n m 1 個整數 a1,a2,an m 1,小明想知道在所有由這 n 個加號 m 個減號以及 n m 1 個整數湊出的合法的 字尾表示式中,結果最大的是哪乙個?請你輸出這個最大的結果。例如使用1 2 3 則 2 3 1 這個字尾表示式結果是 4,是最大的...