题目:
题目描述
给定两个正整数 nn和 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。
代码:
#include<iostream>
using namespace std;
int n,k;
int main(){
cin>>n>>k;
int answer=0;
for(int i=1;i<=n;i++){ //从1到n排着枚举,分别统计出现k的次数
int p=i;
while(p){
if(p%10==k)
answer++;
p/=10; //判断末位是否为k,舍弃末位
}
}
cout<<answer<<endl;
return 0;
}
该代码实现了一个简单的算法,用于计算从1到n的所有正整数中数字k出现的次数。通过遍历每个数字并检查其每一位是否等于k来完成计数。例如,在1到12之间,数字1出现了5次。
3030

被折叠的 条评论
为什么被折叠?



