None

以下程序统计区间 [L, R] 中,数字 k (0 ≤ k ≤ 9) 在所有数字各位上出现的次数。例如 [1, 12] 中,数字 1 出现了 5 次(1, 10, 11(2次), 12)。

#include <iostream>
using namespace std;

long long countDigit(long long n, int k) {
    long long cnt = 0;
    long long factor = 1;
    while (n / factor != 0) {
        long long curr = (n / factor) % 10;
        long long higher = n / (factor * 10);
        long long lower = n % factor;
        if (curr < k) {
            cnt += higher * factor;
        } else if (curr == k) {
            cnt += higher * factor + lower + 1;
        } else {
            cnt += (higher + 1) * factor;
        }
        if (k == 0) { // ②
            ③;
        }
        factor *= 10;
    }
    return cnt;
}

int main() {
    long long L, R;
    int k;
    cin >> L >> R >> k;
    long long ans = countDigit(R, k) - countDigit(①, k);
    cout << ans << endl;
    return 0;
}

①处应填(    )

A

L

B

L - 1

C

L + 1

D

R - L

赣ICP备20007335号-2