后缀表达式求值
描述
输入一个后缀表达式,计算它的值。操作数和操作码之间都以空格分开。
输入
一行,后缀表达式
输出
一行,一个整数,为后缀表达式的值
样例输入
16 9 4 3 + * -
样例输出
-47
#include<iostream>
#include<stack>
using namespace std;
stack<int>S;
int x=0;
int jie=0;
int main()
{
string s;
getline(cin,s);
int m=0;
for(int i = 0;i<s.size();i++)
{
if(s[i]>='0'&&s[i]<='9')
x = x*10+(int)(s[i]-'0');
else if(s[i]==' ')
{
if(m==0)
S.push(x);
x=0;
}
else if(s[i]=='+')
{
m=1;
jie=S.top();
S.pop();
jie=S.top()+jie;
S.pop();
S.push(jie);
}
else if(s[i]=='-')
{
m=1;
jie=S.top();
S.pop();
jie=S.top()-jie;
S.pop();
S.push(jie);
}
else if(s[i]=='*')
{
m=1;
jie=S.top();
S.pop();
jie*=S.top();
S.pop();
S.push(jie);
}
else if(s[i]=='/')
{
m=1;
jie=S.top();
S.pop();
jie*=S.top()/jie;
S.pop();
S.push(jie);
}
}
cout<<jie;
}