酷代码 AI
菜单

给定一个十进制正整数 n n,写下从 1 1 到 n n 的所有整数,然后数一下每个数的各个数位中出现的数字 1 1 的个数。 例如: 当 n = 2 n=2 时,写下 1 , 2 1,2。这样只出现了 1 1 个 1 1; 当 n = 12 n=12 时,写下 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 1,2,3,4,5,6,7,8,9,10,11,12。这样出现了 5 5 个 1 1。C++简写

```cpp #include <iostream> int countDigitOne(int n) { int count = 0; for (int i = 1; i <= n; ++i) { int num = i; while (num > 0) { if (num % 10 == 1) { ++count; } num /= 10; } } return count; } int main() { int n; std::cout << "请输入一个正整数 n: "; std::cin >> n; std::cout << "从 1 到 " << n << " 中数字 1 出现的总次数是: " << countDigitOne(n) << std::endl; return 0; } ``` 代码解释: 1. `countDigitOne` 函数: - 该函数接收一个整数 `n` 作为参数,用于计算从 1 到 `n` 中数字 1 出现的总次数。 - 使用 `for` 循环遍历从 1 到 `n` 的每个整数。 - 对于每个整数 `i`,用 `while` 循环逐位检查其每一位数字。如果某一位数字是 1,则计数器 `count` 加 1。 - 最后返回计数器 `count` 的值。 2. `main` 函数: - 提示用户输入一个正整数 `n`。 - 调用 `countDigitOne` 函数计算从 1 到 `n` 中数字 1 出现的总次数,并输出结果。 [2026-01-31 14:23:38 | AI问答 | 380点数解答]

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