酷代码 AI
菜单
服务商

C++ 实现求解 1 到 n 范围内数字之和为 13 的整数个数

```cpp #include <iostream> int main() { int n; std::cin >> n; int result = 0; for (int i = 1; i <= n; ++i) { int temp = i; int sum = 0; while (temp) { sum += temp % 10; temp /= 10; } if (sum == 13) { result++; } } std::cout << result; return 0; } ``` ### 代码解释 1. **输入处理**:使用 `std::cin` 读取输入的整数 `n`,它代表查找数字的范围上限。 2. **遍历范围**:通过 `for` 循环遍历从 1 到 `n` 的所有整数。 3. **计算数字和**:对于每个整数 `i`,使用 `while` 循环将其每一位数字取出并累加到 `sum` 中。在循环里,`temp % 10` 得到当前最低位数字,加到 `sum` 里,然后 `temp /= 10` 去掉最低位数字,直到 `temp` 变为 0。 4. **判断并计数**:计算完数字和后,检查 `sum` 是否等于 13,如果相等,就把 `result` 加 1。 5. **输出结果**:最后输出符合条件的数字的总个数。 ### 复杂度分析 - **时间复杂度**:$O(n * log_{10}n)$,因为要遍历 `n` 个数字,每个数字计算各位数字和的时间复杂度是 $O(log_{10}n)$。 - **空间复杂度**:$O(1)$,只使用了常数级的额外变量。 ######[AI问答 | 439点数解答 | 2026-04-12 15:54:54]

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