D.表达式求值 (栈&后缀表达式)
思路:裸题,唯一需要注意的是会爆long,long 要一边取模一边操作。
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=1e4;
int main(){
stack<ll>s;
ll a,ans=0;
scanf("%lld",&a);
s.push(a%mod);
char ch;
while((ch=getchar())!='\n'){
scanf("%lld",&a);
if(ch=='+'){
s.push(a);
}
else {
ll b=s.top();s.pop();
s.push((b%mod)*(a%mod));
}
}
while(s.size()){
ans=(ans+s.top())%mod;
s.pop();
}
printf("%lld\n",ans%mod);
return 0;
}