1. 程式人生 > >復習題之後綴表達式

復習題之後綴表達式

結束 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; }

復習題之後綴表達式