我不理解为什么第一遍用转字符串的方法错了,后来用单个数字判断才ac的。
下面是修改的代码。dalao能否帮我解答一下为什么后面到了大数部分就不是那个数了(和本来的数不一样了)。
#include<stdio.h>
#include<string.h>
int main()
{
// char a[1000001];
int n,x,cnt;
unsigned long long i,j,temp;
scanf("%d%d",&n,&x);
j=0;
cnt=0;
for(i=1;i<=n;i++){
temp=i;
while(temp){
// a[j++]=('0'+temp%10);
if(temp%10==x)
cnt++;
temp/=10;
}
}
// a[j]='\0';
// i=0;
// while(a[i]!='\0'){
// if(a[i]==('0'+x))
// cnt++;
// i++;
// }
printf("%d",cnt);
}