题目描述
试计算在区间1到n的所有整数中,数字x共出现了多少次?
例如,在1到11中,即在1、2、3、4、5、6、7、8、9、10、11中,数字1出现了4次。
输入格式
输入共1行,包含2个整数n、x,之间用一个空格隔开。
输出格式
输出共1行,包含一个整数,表示x出现的次数。
数据范围
1≤n≤106,
0≤x≤9
输入样例:
11 1
输出样例:
4
算法1
(暴力枚举) $O(nlen(n))$
刚写了一道这类题的题解,轮番作死。
具体就是枚举每一位然后把它看一下与x是否相等,相等cnt++。
时间复杂度 O(nlen(n))
C++ 代码
#include<iostream>
using namespace std;
int main()
{
//话说刚写了一个类似这种题的题解,自己送了一道……坏笑
int n, x;
cin >> n >> x;
int cnt = 0;
for(int i = 1; i <= n; i ++)
{
int k = i;
while(k > 0)
{
int op = k % 10;
if(op == x) cnt ++;
k /= 10;
}
}
cout << cnt << endl;
return 0;
}
好快