wxy66 @ 2020-11-28 20:28:17
#include <bits/stdc++.h>
using namespace std;
const int maxn=100005;
char str;
stack <long long> z;
long long sum=1;
int main()
{
do
{
cin>>str;
if (str=='.')
{
z.push(sum);
sum=0;
continue;
}
if (str>='0' && str<='9')
{
sum=sum*10+str-'0';
}
if (str=='+')
{
long long a=z.top();
z.pop();
long long b=z.top();
z.pop();
z.push(a+b);
}
if (str=='-')
{
long long a=z.top();
z.pop();
long long b=z.top();
z.pop();
z.push(a-b);
}
if (str=='*')
{
long long a=z.top();
z.pop();
long long b=z.top();
z.pop();
z.push(a*b);
}
if (str=='/')
{
long long a=z.top();
z.pop();
long long b=z.top();
z.pop();
z.push(a/b);
}
if (str=='%')
{
long long a=z.top();
z.pop();
long long b=z.top();
z.pop();
z.push(a%b);
}
}while(str!='@');
printf("%lld",z.top());
return 0;
}
啊啊啊啊。。。。。。
(不会写)
by wxy66 @ 2020-11-28 20:29:29
嘤嘤嘤嘤嘤嘤
by justinjia @ 2021-03-29 09:07:30
@wxy66 sum
的初始值是
by justinjia @ 2021-03-29 09:10:56
@wxy66 还有:
-
和/
都应该是b-a
b/a
而不是a-b
a/b
,因为a
先出栈,肯定靠后,b
靠前。%
可以省略,题目中没有这种运算。