题目名称:计数问题
时间限制:1000ms 内存限制:256M
题目描述
试计算在区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9) 共出现了多少次?例如,在 1 到 11 中,即在 1,2,3,4,5,6,7,8,9,10,11 中,数字 1 出现了 4 次。
输入描述:
2 个整数 n,x ,之间用一个空格隔开。
输出描述:
1 个整数,表示 x 出现的次数。
示例:
输入:
11 1
输出:
4
完整代码如下:
#include <stdio.h>
#include <string.h>
int main()
{
int N,X;
int a[10];//定义一个长度为10的数组
//可以把数组a看成10个水桶,分别用来存放不同数字
scanf("%d %d",&N,&X);
memset(a,0,sizeof(a));//初始化数组a,将其所有元素值置为0
for(int i=1;i<=N;i++)
{
int n=i;
//用辗转相除法来取每一位数字
while(n!=0){
a[n%10]++;
n/=10;
}
}
printf("%d\n",a[X]);
return 0;
}