酷代码 AI
菜单

c++输入一个整数n,统计数字n中,有多少个0,多少个1,多少个2,并分别把统计的结果输出。 输入: 一个整数n。 输出: 三个整数,分别表示数字n中0的个数,1的个数,2的个数,每个数字之间用空格隔开。

以下是实现该功能的 C++ 代码: ```cpp #include <iostream> using namespace std; int main() { int n; cin >> n; int count0 = 0, count1 = 0, count2 = 0; // 处理 n 为负数的情况,先取绝对值 if (n < 0) { n = -n; } // 逐位统计 while (n > 0) { int digit = n % 10; if (digit == 0) { count0++; } else if (digit == 1) { count1++; } else if (digit == 2) { count2++; } n /= 10; } cout << count0 << " " << count1 << " " << count2 << endl; return 0; } ``` 代码解释: 1. 输入处理:使用 `cin` 读取用户输入的整数 `n`。 2. 初始化计数器:初始化三个变量 `count0`、`count1` 和 `count2` 分别用于统计 0、1 和 2 的个数。 3. 处理负数:如果 `n` 为负数,将其转换为正数,因为负数的符号不影响数字的统计。 4. 逐位统计:使用 `while` 循环,通过取模运算 `n % 10` 得到 `n` 的最后一位数字,然后根据该数字的值更新相应的计数器。接着,使用整除运算 `n /= 10` 去掉 `n` 的最后一位数字。 5. 输出结果:使用 `cout` 输出统计结果,每个数字之间用空格隔开。 复杂度分析: - 时间复杂度:$O(log_{10}n)$,其中 $n$ 是输入的整数。因为需要逐位处理数字,而一个整数的位数是 $log_{10}n$。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 [2026-01-24 19:59:07 | AI问答 | 487点数解答]

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