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. 输出结果:将最终结果输出。 ######[AI问答 | 437点数解答 | 2025-11-26 20:13:21]
- 递归下降语法分析程序实例:从文法到 C 代码的完整实现(字节豆包 | 1371点数解答 | 2024-12-12 22:46:04)260
- SQL 实现:精准查询 20 岁选课学生学号、姓名、平均与总成绩(去重取最高) (字节豆包 | 116点数解答 | 2024-10-21 00:46:57)211
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- 深度揭秘 Oracle Workarea Size Policy:参数调优助力数据库性能飞升(阿里通义 | 372点数解答 | 2024-05-13 10:54:45)226
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)310
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)457
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)354
- JavaScript 开发揭秘:表达式 {{data}} 的工作原理及模板字符串应用(阿里通义 | 226点数解答 | 2023-11-09 01:17:26)244
- 揭秘!Angular表达式 {{yourmodel}} 的工作原理与灵活应用(阿里通义 | 187点数解答 | 2023-11-09 01:18:41)212
- Python 实现实数四则运算:输入表达式输出结果,处理除零与格式错误(字节豆包 | 286点数解答 | 2024-11-17 11:21:58)126
- C 语言实现:输入实数四则运算式输出保留两位小数结果(含特殊情况处理) (字节豆包 | 320点数解答 | 2024-11-17 11:22:27)143
- 蓝桥杯省赛集训:不用 datetime 计算小蓝日记整数对应的日期(GPT | 516点数解答 | 2024-08-24 19:05:08)743