cmqqxsb @ 2022-09-08 21:39:07
#include<bits/stdc++.h>
using namespace std;
int op,opt;
string s;
stack <int> a;
int main(){
cin>>s;
for(int i=0;s[i]!='@';i++){
if(s[i]>='0'&&s[i]<='9')
op+=s[i]-'0';
if(s[i]=='.') {
a.push(op);
op=0;
}
if(s[i]=='+'){
opt=a.top();
a.pop();
opt+=a.top();
a.pop();
a.push(opt);
}
if(s[i]=='-'){
opt=a.top();
a.pop();
opt=a.top()-opt;
a.pop();
a.push(opt);
}
if(s[i]=='*'){
opt=a.top();
a.pop();
opt*=a.top();
a.pop();
a.push(opt);
}
if(s[i]=='/'){
opt=a.top();
a.pop();
opt=a.top()/opt;
a.pop();
a.push(opt);
}
}
cout<<opt;
return 0;
}
by cmqqxsb @ 2022-09-08 21:39:48
33分过不了qwq
by plank_black @ 2022-09-08 21:54:18
if(s[i]>='0'&&s[i]<='9')
op+=s[i]-'0';
应该是
if(s[i]>='0'&&s[i]<='9')
op=op*10+s[i]-'0';
因为数字不一定只是一位数
by scp020 @ 2022-09-08 22:03:22
教你一个小技巧
int nextInt(int& i)
{
int number=0;
while(s[i]!='.') number = number * 10 + s[i] - '0',i++;
return number;
}
by scp020 @ 2022-09-08 22:03:43
截取数字
by cmqqxsb @ 2022-09-09 17:33:35
@plank_black 过了过了谢谢大佬(笔芯)