算法
(枚举) $O(nlogn)$
直接枚举 $1$ 到 $n$ 中的每个数,再依次判断每一位是否等于 $2$ 即可。
时间复杂度
从 $1$ 到 $n$ 一共有 $n$ 个数,每个数有 $logn$ 位,因此总时间复杂度是 $O(nlogn)$。
C++ 代码
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 10010;
int main()
{
int l, r;
cin >> l >> r;
int res = 0;
for (int i = l; i <= r; i ++ )
for (int j = i; j; j /= 10)
if (j % 10 == 2)
res ++ ;
cout << res << endl;
return 0;
}
时间复杂度应该是$O(n∗log10(n))$
c++复杂度不算系数
病毒老师,这个题是不是跟2013年的计数问题一样啊
对滴。