原文在这里:https://www.luogu.org/problemnew/show/P1981
好吧又是洛谷的。。。
首先,这道题很简单,由于只有乘法和加法两种运算,竟然还没有括号!!!简直就是普及组的奇迹!!!直接模拟不就好了?
直接上代码:
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
const int mod=10000;
string s;
long long now=0,result=0,time=1;
bool isTime=false;
int main()
{
freopen("expr.in","r",stdin);
freopen("expr.out","w",stdout);
cin>>s;
int len=s.length();
for(int i=0;i<len;i++){
switch(s[i]){
case '+':{
if(isTime==true){
result+=time*now;
result=result%mod;
isTime=false;
time=1;
}
else{
result+=now;
result=result%mod;
}
now=0;
break;
}
case '*':{
time*=now;
time%=mod;
isTime=true;
now=0;
break;
}
default:{
if((s[i]>='0')&&(s[i]<='9'))
now=(now*10+s[i]-'0')%mod;
break;
}
}
}
if(isTime){
result+=time*now;
result=result%10000;