所謂字尾表示式是指這樣的乙個表示式:式中不再引用括號,運算符號放在兩個運算物件之後,所有計算按運算符號出現的順序,嚴格地由左而右新進行(不用考慮運算子的優先順序)。
如:3*(5–2)+7對應的字尾表示式為:3.5.2.-*7.+@。』@』為表示式的結束符號。『.』為運算元的結束符號。
輸入格式:
輸入:字尾表示式
輸出格式:
輸出:表示式的值
輸入樣例#1:
3.5.2.-*7.+@
輸出樣例#1:
16
字串長度,1000內。
其實這個字尾表示式計算的規則很簡單,就是從左到右遍歷表示式的每個數字和符號,遇到是數字的就進棧,遇到是符號,就將處於棧頂兩個數字出棧,進行運算,運算結果再進棧,一直到遇見 '@' 就輸出棧中的第乙個數字(同時也是唯一的乙個數字)。
其中需要注意的也只是乙個如何儲存一位數的數字,整體來說沒什麼難度。
#include
intmain()
else
if(ch ==
'-')
else
if(ch ==
'*')
else
if(ch ==
'/')
else
if(ch ==
'.')
else
cnum = cnum *10+
(ch -
'0');}
printf
("%d"
, num[0]
);return0;
}
洛谷P1449 字尾表示式
所謂字尾表示式是指這樣的乙個表示式 式中不再引用括號,運算符號放在兩個運算物件之後,所有計算按運算符號出現的順序,嚴格地由左而右新進行 不用考慮運算子的優先順序 如 3 5 2 7對應的字尾表示式為 3 5 2 7 為表示式的結束符號。為運算元的結束符號。輸入格式 輸入 字尾表示式 輸出格式 輸出 ...
洛谷 P1449 字尾表示式
題目描述 所謂字尾表示式是指這樣的乙個表示式 式中不再引用括號,運算符號放在兩個運算物件之後,所有計算按運算符號出現的順序,嚴格地由左而右新進行 不用考慮運算子的優先順序 如 3 5 2 7對應的字尾表示式為 3 5 2 7 為表示式的結束符號。為運算元的結束符號。輸入格式 輸入 字尾表示式 輸出格...
P1449 字尾表示式(洛谷)
思路 定義乙個來存放int型的棧,然後將輸入的資料轉換後存入棧中,但是以運算符號為分割,先進第乙個數,再進第二個數,接著將後進的數先丟擲,此時先進的數就是棧頂元素了,然後將這兩個數做運算後再將第乙個數丟擲以及將運算結果sum壓入棧中,以此迴圈即可。include using namespace st...