题目描述
试计算在区间 11 到 nn的所有整数中,数字x(0≤x≤9)x(0≤x≤9)共出现了多少次?例如,在 11到1111中,即在 1,2,3,4,5,6,7,8,9,10,111,2,3,4,5,6,7,8,9,10,11 中,数字 11出现了 44 次。
输入输出格式
输入格式:
2个整数n,x,之间用一个空格隔开。
输出格式:
1个整数,表示x出现的次数。
输入输出样例
输入样例#1:
11 1
输出样例#1
4
思路:1,最简单的就是暴力解法
2,我们可以把数转化为字符串进行比较
//第二种做法
#include <iostream>
#include <string>
using namespace std;
int main()
{
char s[10];//用来存储下一位数
int n, x;
int count = 0;
// cin >> n >> x;
n = 11, x = 1;
for (int i = 1; i <= n; i++) {
int temp = i;
int k = 0;//用来作为字符数组的下标
while (temp) {
s[k++] = temp % 10 + '0';
temp /= 10;
s[k] = '\0';
}
//接下来比较
for (int j = 0; j < strlen(s); j++) {
if (s[j] - '0' == x) count++;//转换成数字比较
}
}
cout << count << endl;
return 0;
}