酷代码 AI
菜单
服务商

题目描述 给定一个十进制正整数n(1<=n<=10000),写下从1到n的所有整数,然后数一下其中出现的数字“1”的个数。例如当n=2时,写下1,2。这样只出现了1个“1”;当n=12时,写下1,2,3,4,5,6,7,8,9,10,11,12。这样出现了5个“1”。 输入格式 正整数n。1 <= n <= 10000。 输出格式 一个正整数,即“1”的个数。 输入样例 12 输出样例 5 说明/提示 用c++语言

```cpp #include <iostream> using namespace std; // 计算一个数中数字1的个数 int countOnesInNumber(int num) { int count = 0; while (num > 0) { if (num % 10 == 1) { count++; } num /= 10; } return count; } // 计算从1到n所有数字中数字1的总个数 int countOnesFromOneToN(int n) { int totalCount = 0; for (int i = 1; i <= n; i++) { totalCount += countOnesInNumber(i); } return totalCount; } int main() { int n; cin >> n; cout << countOnesFromOneToN(n) << endl; return 0; } ``` 代码解释 1. `countOnesInNumber`函数:此函数用于计算一个整数中数字`1`的个数。通过不断取模和整除操作,逐位检查该数的每一位是否为`1`,若是则计数器`count`加`1`。 2. `countOnesFromOneToN`函数:该函数用于计算从`1`到`n`所有整数中数字`1`的总个数。通过一个循环遍历从`1`到`n`的每个整数,调用`countOnesInNumber`函数计算每个数中`1`的个数,并累加到`totalCount`中。 3. `main`函数:从标准输入读取一个整数`n`,调用`countOnesFromOneToN`函数计算从`1`到`n`中数字`1`的总个数,并将结果输出到标准输出。 [2025-11-17 13:35:45 | AI问答 | 416点数解答]

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