/*
试计算在区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9)共出现了多少次?
例如,在 1到 11 中,即在 1、2、3、4、5、6、7、8、9、10、11 中,数字 1 出现了 4 次。
对于 100%的数据,1≤ n ≤ 1,000,000,0 ≤ x ≤ 9。
*/
/*
char*itoa(int value,char*string,int radix);
int value 被转换的整数,
char *string 转换后储存的字符数组,
int radix 转换进制数,如2,8,10,16 进制等
注意:itoa(int value,char*string,int radix)存放在
<stdlib.h>中有些编译器可能不支持
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int approach(int n,char x );
int main()
{
int n=0,num=0,count=0;
char x;
scanf("%d %c",&n,&x);//输入最最大数范围1~n,输入要查找的数x
//统计x的个数
count= approach(n,x);
printf("%d",count);
return 0;
}
int approach(int n,char x )
{
int num=0,count=0;
char Str_save[100000];
for(int i=1;i<=n;i++)
{
num=i;
itoa(num,Str_save,10);//每个数字转化为字符串
for( int j=0;j<strlen(Str_save);j++)//扫描每一个字符串中,是否含有字符x
{
if(Str_save[j]==x&&Str_save[j]!=0)
++count; //统计x的个数
}
}
return count;
}
试计算在区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1
到 11 中,即在 1、2、3、4、5、6、7、8、9、10、11 中,数字 1 出现了 4 次。
/*
char*itoa(int value,char*string,int radix);
int value 被转换的整数,
char *string 转换后储存的字符数组,
int radix 转换进制数,如2,8,10,16 进制等
*/
//对于 100%的数据,1≤ n ≤ 1,000,000,0 ≤ x ≤ 9。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int approach(int n,char x );
int main()
{
int n=0,num=0,count=0;
char x;
scanf("%d %c",&n,&x);//输入最最大数范围1~n,输入要查找的数x
//统计x的个数
count= approach(n,x);
printf("%d",count);
return 0;
}
int approach(int n,char x )
{
int num=0,count=0;
char Str_save[100000];
for(int i=1;i<=n;i++)
{
num=i;
itoa(num,Str_save,10);//每个数字转化为字符串
for( int j=0;j<strlen(Str_save);j++)
{
if(Str_save[j]==x&&Str_save[j]!=0)
++count;
}
}
return count;
}