学习C++从娃娃抓起!记录下CSP-J备考学习过程中的题目,记录每一个瞬间。
附上汇总贴:CSP-J复赛冲刺必刷题 | 汇总_热爱编程的通信人的博客-CSDN博客
【题目描述】
给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。
【输入】
一行,为需要你计算的表达式,表达式中只包含数字、加法运算符 “+” 和乘法运算符 “×”,且没有括号,所有参与运算的数字均为 0 到 2^31−1 之间的整数。
输入数据保证这一行只有 0−9、+、× 这 12种字符。
【输出】
一个整数,表示这个表达式的值。
注意:当答案长度多于 4 位时,请只输出最后 4 位,前导 0 不输出。
【输入样例】
1+1*3+4
【输出样例】
8
【代码详解】
#include <iostream>
#include <stack>
using namespace std;
stack<long long> st;
int main ( )
{
long long a, c, x = 0;
char b;
cin >> a;
a %= 10000;
st.push(a);
while (cin >> b) {
cin >> a;
a %= 10000;
if (b == '*') {
c = st.top();
st.pop();
st.push(a * c % 10000);
}
else {
st.push(a);
}
}
while (!st.empty()) {
x += st.top();
st.pop();
x %= 10000;
}
cout << x;
return 0;
}
【运行结果】
1+1*3+4
8