酷代码 AI
菜单
服务商

题目描述 请统计某个给定范围 [ L , R ] [L,R] 的所有整数中,数字 2 2 出现的次数。 比如给定范围 [ 2 , 22 ] [2,22],数字 2 2 在数 2 2 中出现了 1 1 次,在数 12 12 中出现 1 1 次,在数 20 20 中出现 1 1 次,在数 21 21 中出现 1 1 次,在数 22 22 中出现 2 2 次,所以数字 2 2 在该范围内一共出现了 6 6 次。 输入格式 2 2 个正整数 L L 和 R R,之间用一个空格隔开。 输出格式 数字 2 2 出现的次数。以C++的形式回答

```cpp #include <iostream> // 统计一个整数中数字2出现的次数 int countTwoInNumber(int num) { int count = 0; while (num > 0) { if (num % 10 == 2) { count++; } num /= 10; } return count; } // 统计[L, R]范围内数字2出现的总次数 int countTwoInRange(int L, int R) { int totalCount = 0; for (int i = L; i <= R; i++) { totalCount += countTwoInNumber(i); } return totalCount; } int main() { int L, R; std::cin >> L >> R; int result = countTwoInRange(L, R); std::cout << result << std::endl; return 0; } ``` 代码解释 1. `countTwoInNumber`函数: - 该函数接收一个整数`num`作为参数。 - 使用`while`循环,不断取出`num`的最后一位数字,判断是否为2,如果是则计数器`count`加1。 - 然后将`num`除以10,去掉最后一位数字,继续循环,直到`num`变为0。 - 最后返回计数器`count`的值。 2. `countTwoInRange`函数: - 该函数接收两个整数`L`和`R`作为参数,表示范围的左右边界。 - 使用`for`循环遍历从`L`到`R`的所有整数。 - 对于每个整数,调用`countTwoInNumber`函数统计其中数字2出现的次数,并累加到`totalCount`中。 - 最后返回`totalCount`的值。 3. `main`函数: - 读取用户输入的两个整数`L`和`R`。 - 调用`countTwoInRange`函数统计[L, R]范围内数字2出现的总次数。 - 输出统计结果。 [2026-02-07 17:12:26 | AI问答 | 489点数解答]

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