题目描述
试计算在区间 1 到 n 的所有整数中,数字 x(0≤x≤9)共出现了多少次?例如,在 1 到 11 中,即在 1,2,3,4,5,6,7,8,9,10,11 中,数字 1 出现了 4 次。
输入格式
22个整数 n,x,之间用一个空格隔开。
输出格式
1 个整数,表示 x 出现的次数。
分析:
1在1出现了一次,在10中出现了一次,在11中出现了两次。从1到n进行for循环,对每一个数进行判断,对10取余如果等于x,则次数加一,11对10取余为1,次数加一,再用商1对10取余,一直到商为0结束。
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n,x,m,d;
cin >> n>>x;
m = 0;
for (int i = 1; i <= n; i++) {
d = i;
while (d != 0) {
if (d % 10 == x) {//判断余数是否等于x
m++;
}
d = d / 10;//将d等于商在进行判断
}
}
cout << m;
return 0;
}