[NOIP 2013 PJ]表示式求值
阿新 • • 發佈:2019-01-09
程式碼
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <stack>
#include <iostream>
using namespace std;
char s[10000005];
int len;
stack<char> st;
stack<long long> val;
int main(){
scanf("%s",s);
len=strlen(s)-1;
long long ss=atoi(s),b;
val.push(ss);
for (int i=0;i<=len;i++){
if(s[i]=='+'){
val.push(atoi(s+i));
st.push(s[i]);
}
if(s[i]=='*'){
long long top=val.top();val.pop();
long long now=atoi(s+i+1);
now%=10000;
top%=10000;
val.push(now*top);
}
}
long long ans(0);
while(!val.empty()){
ans+=val.top();val.pop();
ans%=10000;
}
printf("%lld",ans%10000);
}