1. 程式人生 > >[NOIP 2013 PJ]表示式求值

[NOIP 2013 PJ]表示式求值

程式碼

#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); }