Description
给出一个合法的后缀表达式,它是由运算数串(0 - 9)和运算符( + 、 - 、 * 、 /(整除))组成,中间以一个空格隔开。请你根据后缀表达式的运算规则,计算出它的结果。
Format
Input
输入一个字符串,长度小于30,它是一个合法的后缀表达式。
Output
计算出这个后缀表达式的值,数据保证没有除数0且结果不超过10^9109。
Samples
输入数据 1
5 3 20 * +
输出数据 1
65
#include<bits/stdc++.h>
using namespace std;
string s;
stack<int>ss;
int x,y,tmp,ans;
int main()
{
while(cin>>s)
{
if(s=="+"||s=="-"||s=="*"||s=="/")
{
y=ss.top(),ss.pop();
x=ss.top(),ss.pop();
if(s=="+") ans=x+y;
if(s=="-") ans=x-y;
if(s=="*") ans=x*y;
if(s=="/") ans=x/y;
ss.push(ans);
}
else
{
tmp=0;
for(int i=0;i<s.size();i++)
tmp=tmp*10+(s[i]-'0');
ss.push(tmp);
}
}
cout<<ans;
return 0;
}