酷代码 AI
菜单
服务商

题目描述 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。 输入格式 一行,为需要你计算的表达式,表达式中只包含数字、加法运算符 + 和乘法运算符 *,且没有括号,所有参与运算的数字均为0到231−1 之间的整数。 输入数据保证这一行只有 0*********+* 这 12 种字符。 输出格式 一个整数,表示这个表达式的值。 注意:当答案长度多于 4 位时,请只输出最后 4 位,前导 0 不输出。 输入输出样例 输入 #1 1+1*3+4 输出 #1 8 输入 #2 1+*********0*1 输出 #2 7891 输入 #3 1+1000000003*1 输出 #3 4 说明/提示 对于 30% 的数据,0≤ 表达式中加法运算符和乘法运算符的总数 ≤100。 对于 80% 的数据,0≤ 表达式中加法运算符和乘法运算符的总数 ≤1000。 对于 100% 的数据,0≤ 表达式中加法运算符和乘法运算符的总数 ≤100000。 用c++语言,用简单方法

```cpp #include <iostream> #include <string> using namespace std; int main() { string expression; cin >> expression; long long result = 0; long long currentProduct = 1; long long currentNumber = 0; for (int i = 0; i <= expression.length(); i++) { if (i < expression.length() && isdigit(expression[i])) { currentNumber = currentNumber * 10 + (expression[i] - '0'); } else { currentProduct *= currentNumber; if (i == expression.length() || expression[i] == '+') { result += currentProduct; currentProduct = 1; } currentNumber = 0; } } result %= 10000; cout << result << endl; return 0; } ``` 代码解释 1. 读取输入:使用`cin`读取用户输入的算术表达式,存储在`string`类型的变量`expression`中。 2. 初始化变量: - `result`用于存储最终的计算结果。 - `currentProduct`用于存储当前连续乘法的结果。 - `currentNumber`用于存储当前正在处理的数字。 3. 遍历表达式: - 当遇到数字字符时,将其转换为数字并累加到`currentNumber`中。 - 当遇到运算符或表达式结束时,将`currentNumber`乘到`currentProduct`上。 - 如果遇到`+`运算符或者到达表达式末尾,将`currentProduct`累加到`result`中,并将`currentProduct`重置为 1。 4. 取模操作:计算完成后,对`result`取模 10000,确保结果只保留最后四位。 5. 输出结果:将最终结果输出。 [2025-11-26 20:13:21 | AI问答 | 437点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多