#4352. [GESP202506 八级 C++] 第 9 题

[GESP202506 八级 C++] 第 9 题

下面的 sum_digit 函数试图求出从 1n(包含 1n)的数中,包含数字 d 的个数。该函数的时间复杂度为( )。

#include <string>
int count_digit(int n, char d) {
    int cnt = 0;
    std::string s = std::to_string(n);
    for (int i = 0; i < s.length(); i++)
        if (s[i] == d)
            cnt++;
    return cnt;
}
int sum_digit(int n, char d) {
    int sum = 0;
    for (int i = 1; i <= n; i++)
        sum += count_digit(i, d);
    return sum;
}

{{ select(1) }}

  • O(nlogn)O(n \log n)
  • O(n)O(n)
  • O(logn)O(\log n)
  • O(n2)O(n^2)