酷代码 AI
菜单

c++题目描述 求输入的一个整数的各位数字之和。 输入格式 一行一个整数n。 输出格式 一个整数,表示输入数据的每一位的数字之和。 input1 运行 复制 2147483646 output1 复制 45 数据规模与约定 对于 100 % 100% 的数据,数据保证可以用int进行处理。

```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)$,只使用了常数级的额外空间。 [2026-01-24 20:17:49 | AI问答 | 371点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多