//输入 一个0-9的数据k,输入一个整数12,求0-12 中有多少位数是 k (个十百位 等于k)
输入数据为k 和n(以空格隔开); 1 12
输出为:5
解释:[0,1,2,3,4,5,6,7,8,9,10,11,12] 中有5个1 出现,分别是[1,10,11,12]
//1、考虑特殊情况 当k 和 n都是零的时候,直接输出1.
//2、正常情况下,设置外循环从1 遍历到 n,然后嵌套内循环while() 用i对10求余%得r
// 对余数进行判断 k ?= r,相等则满足条件count++,
//3、对i mod 10取整进行循环2步骤,直至i=0,退出内循环,一个数据遍历完毕,在进行外数据++,重复2步骤
//4、最终将遍历结果输出
#include
using namespace std;
int count(int k, int n)
{
int i, j, count = 0;
if (k == 0 && n == 0)
count++;
for (i = 1; i <= n; i++)
{
j = i;
while (j != 0)
{
if (j % 10 == k)
count++;
j = j / 10;
}
}
return count;
}
int main()
{
int k, n;
cin >> k >> n;
int ret = count(k, n);
cout << ret << endl;
system("pause");
return 0;
}