酷代码 AI
菜单
服务商

#include<bits/stdc++.h> using namespace std; int main() { string s; cin >> s; long long ans = 0; long long a = 1; long long b = 0; for (int i = 0; i <= s.length(); i++) { if (i < s.length() && isdigit(s[i])) { b = b * 10 + (s[i] - '0'); } else { a *= b; if (i == s.length() || s[i] == '+') { ans += a; a = 1; } b = 0; } } ans %= 10000; cout << ans

```cpp #include<bits/stdc++.h> // 使用标准命名空间 using namespace std; // 主函数,程序的入口点 int main() { // 定义一个字符串变量 s,用于存储输入的表达式 string s; // 从标准输入读取一个字符串到 s cin >> s; // 定义一个长整型变量 ans,用于存储最终的计算结果 long long ans = 0; // 定义一个长整型变量 a,用于存储乘法的中间结果 long long a = 1; // 定义一个长整型变量 b,用于存储当前连续数字组成的数值 long long b = 0; // 遍历字符串 s 的每一个字符 for (int i = 0; i <= s.length(); i++) { // 如果当前字符是数字且未遍历到字符串末尾 if (i < s.length() && isdigit(s[i])) { // 将当前数字累加到 b 中,更新 b 的值 b = b * 10 + (s[i] - '0'); } else { // 将当前连续数字组成的数值 b 乘到乘法中间结果 a 上 a *= b; // 如果遍历到字符串末尾或者当前字符是加号 if (i == s.length() || s[i] == '+') { // 将乘法中间结果 a 累加到最终结果 ans 上 ans += a; // 将乘法中间结果 a 重置为 1 a = 1; } // 将当前连续数字组成的数值 b 重置为 0 b = 0; } } // 对最终结果 ans 取模 10000 ans %= 10000; // 输出最终结果 ans 到标准输出 cout << ans << endl; // 主函数正常结束,返回 0 return 0; } ``` 这段代码的核心功能是计算一个由数字、加号和乘号组成的表达式的值,并且在计算过程中只处理乘法和加法,最后将结果对 10000 取模输出。它遵循乘法优先于加法的运算规则。例如,对于输入 `3+4*5`,程序会先计算 `4*5 = 20`,再计算 `3 + 20 = 23`,最后输出 `23 % 10000 = 23`。 [2025-11-26 20:26:12 | AI问答 | 570点数解答]

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