所謂字尾表示式是指這樣的乙個表示式:式中不再引用括號,運算符號放在兩個運算物件之後,所有計算按運算符號出現的順序,嚴格地由左而右新進行(不用考慮運算子的優先順序)。
如:3*(5–2)+7對應的字尾表示式為:3.5.2.-*7.+@。』@』為表示式的結束符號。『.』為運算元的結束符號。
輸入格式:
輸入:字尾表示式
輸出格式:
輸出:表示式的值
輸入樣例#1:複製
3.5.2.-*7.+@
輸出樣例#1:複製
16
字串長度,1000內。
來自洛谷
解題思路:一眼便知,這是棧的應用,c++的stl庫內自帶,因此可以用此進行解題;
標頭檔案#include
具體操作見**#include#include#include#include#include#include#include//棧的標頭檔案
using namespace std;
stackqwq;//定義乙個名為qwq的棧
int change(string s)
if(s[i]=='.')
if(s[i]=='+')
if(s[i]=='/')
if(s[i]=='*')
if(s[i]=='-')
//加減乘除
if(s[i]=='@') break;
}int ans=qwq.top();
printf("%d",ans);
return 0;
}
字尾表示式 中綴到字尾表示式
輸入空格跳出迴圈 while k getchar n 字尾表示式 此 僅限於0 9內的加減乘除 include include include define long 10 using namespace std typedef struct stack qstack void init qstac...
字尾表示式
字尾表示式的計算和中綴表示式轉字尾表示式 此處的運算用的是鍊錶的表示方法 以下為三個會涉及到的標頭檔案 error.h 字尾表示式 created by kyle.yang on 14 12 2.ifndef error h define error h include using namespac...
字尾表示式
對於乙個算術表示式我們的一般寫法是這樣的 3 4 5 6 這中寫法是中序表示式 而後序表示式則是將運算子放在運算元的後面,如 3 4 5 6 可以看出後序表示式中沒有括號,只表達了計算的順序,而這個順序恰好就是計算器中的一般計算順序。建立乙個棧s 從左到右讀表示式,如果讀到運算元就將它壓入棧s中,如...