酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

C++实现区间内个位数为3的数字求和及倍数判断

## 🧮 题目解析与C++实现思路 题目要求计算区间 [a, b] 内所有个位数为 3 的整数之和,并判断该和是否为 3 的倍数。个位数为 3 的数形如 3, 13, 23, 33, ... 即 `n % 10 == 3`。 ## 💻 C++ 代码实现 ```cpp #include <iostream> using namespace std; int main() { int a, b; cin >> a >> b; long long sum = 0; // 使用 long long 防止溢出 // 遍历区间内所有整数 for (int i = a; i <= b; ++i) { // 判断个位数是否为 3 if (i % 10 == 3) { sum += i; } } // 输出第一行:数字和 cout << sum << endl; // 输出第二行:判断是否为 3 的倍数 if (sum % 3 == 0) { cout << "YES" << endl; } else { cout << "NO" << endl; } return 0; } ``` ## 🔍 代码说明 - **遍历与判断**:使用 `for` 循环从 `a` 到 `b`,对每个数取模 `% 10` 判断个位是否为 3。 - **累加求和**:将符合条件的数字累加到 `sum` 中,使用 `long long` 避免当区间较大时 `int` 溢出。 - **倍数判断**:累加完成后,用 `sum % 3 == 0` 判断是否为 3 的倍数,并按要求输出 `YES` 或 `NO`。 ## ⚠️ 边界情况注意 - 输入中 `a` 可能大于 `b`,此时循环不会执行,`sum` 为 0,0 是 3 的倍数,输出 `YES`。 - 区间内可能没有个位数为 3 的数字,此时 `sum` 为 0,同理输出 `YES`。 ## ✅ 示例验证 输入: ``` 10 35 ``` 流程: - 个位数为 3 的数字:13, 23, 33 - 和 = 13 + 23 + 33 = 69 - 69 % 3 == 0,输出 `YES` 输出: ``` 69 YES ``` ######[AI问答 | 564点数解答 | 2026-08-09 12:25:15]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]