復習題之後綴表達式
阿新 • • 發佈:2017-05-15
結束 stack style urn 一個 引用 while adg span
洛谷 P1449 後綴表達式
- 難度普及-
- 時空限制1s / 128MB
所謂後綴表達式是指這樣的一個表達式:式中不再引用括號,運算符號放在兩個運算對象之後,所有計算按運算符號出現的順序,嚴格地由左而右新進行(不用考慮運算符的優先級)。
如:3*(5–2)+7對應的後綴表達式為:3.5.2.-*7.[email protected]’@’為表達式的結束符號。‘.’為操作數的結束符號。
輸入輸出格式
輸入格式:輸入:後綴表達式輸出格式:輸出:表達式的值
輸入輸出樣例
輸入樣例#1:3.5.2.-*7.+@輸出樣例#1:
16
說明
字符串長度,1000內。
/* 這幾天在復習之前的一些很簡單的東西。 第一次做這道題是兩年前吧,時間過得好快啊!╮(╯▽╰)╭ */ #include<cstdio> #include<cstring> #include<iostream> using namespace std; int stack[1100],top=0,x,i=0; char ss[3000]; int main() { gets(ss);while(ss[i]!=‘@‘) { switch(ss[i]) { case ‘+‘:{stack[--top]+=stack[top+1];break;} case ‘-‘:{stack[--top]-=stack[top+1];break;} case ‘*‘:{stack[--top]*=stack[top+1];break;} case ‘/‘:{stack[--top]/=stack[top+1];break;}default: { x=0; while(ss[i]!=‘.‘)x=x*10+ss[i++]-‘0‘; stack[++top]=x; break; } } i++; } printf("%d\n",stack[top]); return 0; }
復習題之後綴表達式