要解决这个问题,我们需要统计给定范围 [L, R] 内所有整数中数字 7 出现的次数。我们可以逐个检查每个数字的每一位,统计其中 7 的出现次数。 方法思路 1. 遍历每个数字:从 L 到 R 的每一个数字都需要检查。 2. 检查每一位:对于每个数字,逐位检查是否为 7。 3. 统计次数:每次遇到数字 7 时,计数器加 1。 解决代码 ```cpp #include <iostream> using namespace std; int countSevensInNumber(int num) { int count = 0; while (num > 0) { int digit = num % 10; if (digit == 7) { count++; } num /= 10; } return count; } int main() { int L, R; cin >> L >> R; int total = 0; for (int i = L; i <= R; ++i) { total += countSevensInNumber(i); } cout << total << endl; return 0; } ``` 代码解释 1. 函数 `countSevensInNumber`:该函数接收一个整数 `num`,通过不断取模和除以 10 来检查每一位数字是否为 7。如果是,计数器增加。 2. 主函数 `main`:读取输入的区间 [L, R],然后遍历区间内的每一个数字,调用 `countSevensInNumber` 函数统计每个数字中 7 的出现次数,并将结果累加到 `total` 中。最后输出 `total`。 额外注意事项 - 输入的范围 [L, R] 需要确保 L ≤ R,否则循环不会执行,结果为 0。 - 数字 0 的处理:0 的每一位都不会是 7,所以不需要特殊处理。 - 负数的情况:题目中未提及负数,假设输入均为非负整数。如果包含负数,需要取绝对值处理。 [2025-06-20 16:58:16 | AI写代码神器 | 437点数解答]