C++统计1到n中数字1的出现次数及开发建议
### 🔍思路分析 本题要求统计从 1 到 `n` 的所有整数中数字 1 出现的总次数。可以通过遍历从 1 到 `n` 的每个数字,将每个数字转换为字符串,然后统计字符串中字符 '1' 的个数,最后将所有数字中 1 的个数累加起来。 ### 💻代码实现 ```cpp #include <iostream> #include <string> using namespace std; int main() { int n; cin >> n; int count = 0; // 遍历从 1 到 n 的每个数字 for (int i = 1; i <= n; i++) { string num_str = to_string(i); // 遍历当前数字的每一位 for (char c : num_str) { if (c == '1') { count++; } } } cout << count << endl; return 0; } ``` ### 📝代码解释 1. **输入处理**:使用 `cin` 读取用户输入的正整数 `n`。 2. **遍历数字**:使用 `for` 循环遍历从 1 到 `n` 的每个数字。 3. **统计 1 的个数**:将每个数字转换为字符串,然后遍历字符串中的每个字符,如果字符是 '1',则将计数器 `count` 加 1。 4. **输出结果**:使用 `cout` 输出统计结果。 ### ⚙️复杂度分析 - **时间复杂度**:$O(n log n)$,其中 $n$ 是输入的正整数。对于每个数字,需要 $O(log n)$ 的时间将其转换为字符串。 - **空间复杂度**:$O(log n)$,主要用于存储每个数字的字符串表示。 ### 💡开发建议 - **边界条件检查**:在实际应用中,可以添加对输入的边界条件检查,确保输入的 `n` 是正整数。 - **性能优化**:对于较大的 `n`,可以考虑使用数学方法来优化统计过程,避免遍历每个数字。 ######[AI写代码神器 | 504点数解答 | 2026-03-04 13:45:51]
- C++ 实现:精准统计给定范围 [L, R] 内数字 2 出现的次数及代码详解(字节豆包 | 401点数解答 | 2026-02-05 21:17:05)28
- C++实现:统计[L, R]范围内数字2出现的次数及代码详解(字节豆包 | 489点数解答 | 2026-02-07 17:12:26)33
- Python:用正则表达式从含多种字符的字符串中提取英文、数字和中文单词(GPT | 522点数解答 | 2024-05-31 19:05:27)305
- Python:用正则表达式结合 split 思路提取一行字符串中的英文、数字和中文单词 (GPT | 399点数解答 | 2024-05-31 19:07:31)300
- 繁体字编码代码修改:人物名字合法性验证函数转简体版(字节豆包 | 325点数解答 | 2024-10-21 18:57:01)277
- 计算区间 n 到 m 中数字 x 出现次数的 Python 实现与详解(字节豆包 | 289点数解答 | 2025-12-07 17:14:59)63
- Python 实现:计算区间 n 到 m 中数字 x 出现的次数(字节豆包 | 322点数解答 | 2025-12-13 21:37:08)66
- 用 Pandas 深度剖析数据:从读取到统计分析全流程实战(GPT | 642点数解答 | 2024-06-30 15:39:49)350
- 用 Pandas 深入分析招聘数据:从数据读取到可视化全流程解析(GPT | 1539点数解答 | 2024-06-30 15:56:50)359
- Python 实现:精确统计两数范围内素数个数,附完整代码与优化思路(阿里通义 | 292点数解答 | 2024-11-28 21:36:29)242
- Python 文件数量统计:检测当前及指定路径文件数并处理错误 (字节豆包 | 179点数解答 | 2024-12-11 13:09:13)198
- Python三关挑战:文件与文件夹数量统计及路径获取(字节豆包 | 493点数解答 | 2024-12-11 13:29:49)214