酷代码 AI
菜单
服务商

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]

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