嗯...
题目链接:https://www.luogu.org/problem/P1981
这道题其实是数组模拟栈。首先处理乘法:注意从后往前处理,处理后归零。然后把数都加起来即可。
AC代码:
1 #include<cstdio> 2 #include<iostream> 3 4 using namespace std; 5 6 char c[100005]; 7 long long a[100005]; 8 9 int main(){ 10 int cnt = 1; 11 long long sum = 0; 12 cin >> a[cnt]; 13 a[cnt] %= 10000; 14 while(cin >> c[cnt]){ 15 cin >> a[++cnt]; 16 a[cnt] %= 10000; 17 } 18 for(int i = cnt; i >= 1; i--){ 19 if(c[i] == '*'){ 20 a[i] *= a[i+1]; 21 a[i] %= 10000; 22 a[i+1] = 0; 23 } 24 } 25 for(int i = 1; i <= cnt; i++) {sum += a[i]; sum %= 10000;} 26 printf("%lld", sum); 27 return 0; 28 }