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