题目
题目描述
给定一个后缀表达式,求后缀表达式的值。
输入格式
一行,直接输入后缀表达式,每个数字与字符之间用空格隔开。
输出格式
一个数字,输出 这个表达式的值。
代码
#include<iostream>
#include<stack>
#include<cstdio>
#include<string>
using namespace std;
int main(){
stack<int> s;
string a;
getline(cin,a);
for(int i=0;i<a.length();i++){
int sum=0;
while(a[i]>='0'&&a[i]<='9'){
sum=sum*10+a[i++]-'0';
}
if(sum!=0) s.push(sum);
if(a[i]=='+'||a[i]=='-'||a[i]=='*'||a[i]=='/'){
int num2=s.top();
s.pop();
int num1=s.top();
s.pop();
if(a[i]=='+') s.push(num1+num2);
else if(a[i]=='-') s.push(num1-num2);
else if(a[i]=='*') s.push(num1*num2);
else if(a[i]=='/') s.push(num1/num2);
}
}
cout<<s.top();
return 0;
}