NOIP2013T2 表达式求值

 

 

 

 

#include<bits/stdc++.h>
using namespace std;
int main(){
    long long a,d,x=0;char c;
    cin>>d;
    while(cin>>c>>a)
        if(c=='*')d=d*a%10000;else{x=(x+d)%10000;d=a;}
    cout<<(x+d)%10000;
    return 0;
}

  

 

#include<bits/stdc++.h>
using namespace std;
string s;
int t,d,pre,x;
int main(){   
    cin>>s; s=s+"+";
    for(int i=0;i<s.size();i++)
        if(isdigit(s[i]))t=t*10+s[i]-'0';
        else{
            if(pre==1)d=d*t%10000; else{x=(x+d)%10000;d=t%10000;}
            if(s[i]=='*')pre=1; else pre=0;
            t=0;
        }
    printf("%d\n",(x+d)%10000);
    return 0;
}

  

 

#include<bits/stdc++.h>
using namespace std;
string s;int a[100010];
int main(){   
    cin>>s; s=s+"+";
    int t=0,n=0,pre=0,x=0;
    for(int i=0;i<s.size();i++)
        if(isdigit(s[i]))t=t*10+s[i]-'0';
        else{
            if(pre==1)a[n]=a[n]*t%10000; else a[++n]=t%10000;
            if(s[i]=='*')pre=1; else pre=0;
            t=0;
        }
    for(int i=1;i<=n;i++)x=(x+a[i])%10000;
    printf("%d\n",x);
    return 0;
}

  

 

posted @ 2014-10-23 13:10  qilinart  阅读(496)  评论(0编辑  收藏  举报