计算在区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9)共出现了多少次?

来源:互联网 发布:windows资源管理器解锁 编辑:程序博客网 时间:2024/06/05 15:52

/*试计算在区间 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;}

阅读全文
0 0
原创粉丝点击