用ti来判断是否要有乘法,如果有乘法的话ti的值为上个数的值,即为要乘的数,直接用sign乘上ti就得到这个值了,如果ti==-1就代表暂时没有乘法,只需要正常进行加法运算就可以。
输出后四位一直%10000就可以了。
#include<iostream>
using namespace std;
int main(){
string s;
cin>>s;
int n=s.length();
int ans=0;
int ti=-1;
int i=0;
while(i<n){
int sign=0;
while(i<n&&s[i]>='0'&&s[i]<='9'){
sign=(s[i]-'0'+sign*10)%10000;
i++;
}
if(i==n||s[i]=='+'){
if(ti!=-1){
ti=ti*sign%10000;
ans+=ti;
ans=ans%10000;
ti=-1;
}
else{
ans=ans+sign;
ans=ans%10000;
}
}
else if(s[i]=='*'){
if(ti==-1){
ti=1;
}
ti=ti*sign%10000;
}
i++;
}
cout<<ans<<endl;
return 0;
}
京公网安备 11010502036488号