给定两个正整数 n 和 k,求从 1 到 n 这 n 个正整数的十进制表示中 k 出现的次数。
输入格式
共一行,包含两个整数 n 和 k。
输出格式
输出一个整数,表示答案。
数据范围
1≤n≤106,
1≤k≤9
输入样例:
12 1
输出样例:
5
样例解释
从 1 到 12 这些整数中包含 1 的数字有 1,10,11,12,一共出现了 5 次 1。
时/空限制: 1s / 64MB
题目解析:
对于每一个数,枚举它的每一位,看一下所有的位含有多少个k,根据数据的范围,计算量大约五六百万,根据C++ 的计算能力,用暴力枚举就可以算完。
代码:
#include<iostream> using namespace std; int main(){ int k, n, cnt = 0; cin >> n >> k; for(int i = 1; i <= n; i++){ int t = i; while(t != 0){ if(t%10 == k) cnt++; t /= 10; } } cout << cnt; return 0; }