华师一附中OI组
标题:
P1449 后缀表达式
[打印本页]
作者:
倚窗倾听风吹雨
时间:
2018-9-4 15:55
标题:
P1449 后缀表达式
https://www.luogu.org/problemnew/show/P1449
题目描述
所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。
如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号。
输入输出格式
输入格式:
输入:后缀表达式
输出格式:
输出:表达式的值
输入输出样例
输入样例#1:
3.5.2.-*7.+@
输出样例#1:
16
说明
字符串长度,1000内。
作者:
倚窗倾听风吹雨
时间:
2018-9-4 15:55
#include<iostream>
#include<stack>
#include<cstdio>
using namespace std;
stack<int>s;
int num,n1,n2;
char ch;
string s1;
int main()
{
getline(cin,s1);
int i=0;
ch=s1[i];
while(ch!='@')
{
if(ch>='0' && ch<='9')num=num*10+(ch-'0');
if(ch=='.')
{
s.push(num);
num=0;
}
if(ch=='+')
{
n1=s.top();
s.pop();
n2=s.top();
s.pop();
n1=n2+n1;
s.push(n1);
}
if(ch=='-')
{
n1=s.top();
s.pop();
n2=s.top();
s.pop();
n1=n2-n1;
s.push(n1);
}
if(ch=='*')
{
n1=s.top();
s.pop();
n2=s.top();
s.pop();
n1=n2*n1;
s.push(n1);
}
if(ch=='/')
{
n1=s.top();
s.pop();
n2=s.top();
s.pop();
n1=n2/n1;
s.push(n1);
}
ch=s1[++i];
}
num=s.top();
cout<<num<<endl;
return 0;
}
复制代码
作者:
universehyf
时间:
2018-9-17 19:04
#include<iostream>
using namespace std;
int a[1010],t;
int l,top;
string s;
int main()
{
cin>>s;top=0;
l=s.size();l--;
for(int i=0;i<l;i++)
{
if(s[i]=='.') {a[++top]=t;t=0;}
if(s[i]>='0'&&s[i]<='9') t=t*10+s[i]-'0';
if(s[i]=='+') {a[top-1]=a[top-1]+a[top];top--;}
if(s[i]=='-') {a[top-1]=a[top-1]-a[top];top--;}
if(s[i]=='*') {a[top-1]=a[top-1]*a[top];top--;}
if(s[i]=='/') {a[top-1]=a[top-1]/a[top];top--;}
///for(int j=1;j<=5;j++) cout<<a[j]<<" ";cout<<top<<endl;
}
cout<<a[1];
return 0;
}
复制代码
作者:
黄煦喆
时间:
2018-9-24 15:45
#include<iostream>
#include<stack>
using namespace std;
string s;
stack<int>st;
int k,p1,p2,ans;
int main()
{
cin>>s;
for(int i=0;i<s.size()-1;i++)
if(s[i]=='.')
{
st.push(k);
k=0;
}
else if(s[i]>='0'&&s[i]<='9')k=10*k+(s[i]-'0');
else
{
p1=st.top();
st.pop();
p2=st.top();
st.pop();
if(s[i]=='+')ans=p1+p2;
else if(s[i]=='-')ans=p2-p1;
else if(s[i]=='*')ans=p2*p1;
else if(s[i]=='/')ans=p2/p1;
st.push(ans);
}
cout<<st.top();
return 0;
}
复制代码
欢迎光临 华师一附中OI组 (http://hsyit.cn/)
Powered by Discuz! X3.2