用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;
}