参考程序:
#include <iostream>
using namespace std;// 函数 check(x, y):统计一个整数 x 中有多少位是数字 y
int check(int x, int y) {int cnt = 0; // 统计 y 出现的次数while (x > 0) { // 逐位处理 x 中的每一位int tmp = x % 10; // 提取当前最低位if (tmp == y) { // 如果这一位等于 ycnt++; // 统计次数加一}x = x / 10; // 去掉最低位,继续判断下一位}return cnt; // 返回在这个数中 y 出现的次数
}int main() {int n, k;cin >> n >> k; // 输入 n 和 kint ans = 0; // 最终统计结果for (int i = 1; i <= n; i++) {ans += check(i, k); // 对每个 1~n 的数字调用 check 累加结果}cout << ans << endl; // 输出最终统计次数return 0;
}