描述
输入一个后缀表达式,计算它的值。操作数和操作码之间都以空格分开。
输入
一行,后缀表达式
输出
一行,一个整数,为后缀表达式的值
#include<iostream>
#include<string>
using namespace std;
int a[1000];
int n,top;
int main()
{
string tmp;
while(cin>>tmp){
if(tmp=="+"){
int num1=a[top--];
int num2=a[top--];
if(top==0){
cout<<num1+num2;
break;
}
a[++top]=num1+num2;
}
else if (tmp=="-"){
int num1=a[top--];
int num2=a[top--];
if(top==0){
cout<<num2-num1;
break;
}
a[++top]=num1-num2;
}
else if (tmp=="/"){
int num1=a[top--];
int num2=a[top--];
if(top==0){
cout<<num2/num1;
break;
}
a[++top]=num1/num2;
}
else if (tmp=="*"){
int num1=a[top--];
int num2=a[top--];
if(top==0){
cout<<num1*num2;
break;
}
a[++top]=num1*num2;
}
else {
int len=tmp.size();
int num=0;
for(int i=0;i<len;i++){
num*=10;
num+=tmp[i]-'0';
}
a[++top]=num;
}
}
}