somebody_good @ 2023-05-27 12:35:09
rt,只有16分。#2,#4RE,#3,#5,#6WA
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
int i=0,s1,s2,ans=0;
stack<int> num;
cin>>a;
while(1)
{
if(a[i]=='@')
{
cout<<num.top();
return 0;
}
if(a[i]<58 && a[i]>47)
num.push(int(a[i]-48));
if(a[i]=='+')
{
s1=num.top();
num.pop();
s2=num.top();
num.pop();
ans=s1+s2;
num.push(ans);
}
if(a[i]=='-')
{
s1=num.top();
num.pop();
s2=num.top();
num.pop();
ans=s2-s1;
num.push(ans);
}
if(a[i]=='*')
{
s1=num.top();
num.pop();
s2=num.top();
num.pop();
ans=s2*s1;
num.push(ans);
}
if(a[i]=='/')
{
s1=num.top();
num.pop();
s2=num.top();
num.pop();
ans=s2/s1;
num.push(ans);
}
i++;
}
return 0;
}
测本地没有问题啊!
by LBYYSM_123 @ 2023-05-27 12:44:08
答案和计算过程中的每一个值的绝对值不超过
10^9
不能直接一个一个读,因为那些连起来的数字其实是在同一个数字中