C++实现:快速求解整数各位数字之和,附代码详解与复杂度分析
```cpp #include <iostream> using namespace std; int main() { int n; // 从标准输入读取一个整数 cin >> n; int sum = 0; // 处理负数情况,将其转换为正数 if (n < 0) { n = -n; } // 循环计算各位数字之和 while (n > 0) { // 取出当前最低位数字并累加到总和中 sum += n % 10; // 去掉最低位数字 n /= 10; } // 输出各位数字之和 cout << sum << endl; return 0; } ``` 代码解释 1. 输入读取:使用`cin`从标准输入读取一个整数`n`。 2. 负数处理:如果`n`是负数,将其转换为正数,因为负数的符号不影响各位数字之和。 3. 计算各位数字之和:使用`while`循环,每次取出`n`的最低位数字(`n % 10`)并累加到`sum`中,然后将`n`除以10去掉最低位数字。 4. 输出结果:使用`cout`输出各位数字之和。 复杂度分析 - 时间复杂度:$O(log_{10}n)$,其中`n`是输入的整数。因为每次循环将`n`除以10,所以循环次数是`n`的位数。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 ######[AI问答 | 371点数解答 | 2026-01-24 20:17:49]
相关提问
- 判断超级幸运数:满足“纯4/7数位”或“4/7总个数为4或7”的整数计数(阿里通义 | 965点数解答 | 2026-03-13 12:15:06)20
- C++ 实现:精准统计给定范围 [L, R] 内数字 2 出现的次数及代码详解(字节豆包 | 401点数解答 | 2026-02-05 21:17:05)36
- C++实现:统计[L, R]范围内数字2出现的次数及代码详解(字节豆包 | 489点数解答 | 2026-02-07 17:12:26)41
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- 深度揭秘 Oracle Workarea Size Policy:参数调优助力数据库性能飞升(阿里通义 | 372点数解答 | 2024-05-13 10:54:45)226
- C++求解序列或与运算和差值:避O(nq)复杂度及数据处理要点(字节豆包 | 534点数解答 | 2025-10-17 20:05:07)60
- Python:用正则表达式从含多种字符的字符串中提取英文、数字和中文单词(GPT | 522点数解答 | 2024-05-31 19:05:27)313
- Python:用正则表达式结合 split 思路提取一行字符串中的英文、数字和中文单词 (GPT | 399点数解答 | 2024-05-31 19:07:31)310
- 繁体字编码代码修改:人物名字合法性验证函数转简体版(字节豆包 | 325点数解答 | 2024-10-21 18:57:01)285
- 计算区间 n 到 m 中数字 x 出现次数的 Python 实现与详解(字节豆包 | 289点数解答 | 2025-12-07 17:14:59)72
- Python 实现:计算区间 n 到 m 中数字 x 出现的次数(字节豆包 | 322点数解答 | 2025-12-13 21:37:08)74
- C 语言:按特定顺序读入并输出浮点数、整数和字符(字节豆包 | 106点数解答 | 2024-09-26 00:32:40)310