用字符串做的,样例能过,但其他都tle,是哪里出问题了吗
#include<stdio.h>
int main()
{int c[10]={0},i=0,s=0;
char a[11],b[11];
scanf("%s %s",&a,&b);//输入两个数码
while(1)//a字符串向后位移
{
if(a[10]=='\0') break;
else
{
for(i=11;i>=0;i--)
{
a[i]=a[i-1];
}
}
}
while(1)//b字符串向后位移
{
if(b[10]=='\0') break;
else
{
for(i=11;i>=0;i--)
{
b[i]=b[i-1];
}
}
}
while(1)
{
for(i=0;i<=9;i++)//检测对应数码是否出现
{
if(a[i]=='0')c[0]++;
else if(a[i]=='1')c[1]++;
else if(a[i]=='2')c[2]++;
else if(a[i]=='3')c[3]++;
else if(a[i]=='4')c[4]++;
else if(a[i]=='5')c[5]++;
else if(a[i]=='6')c[6]++;
else if(a[i]=='7')c[7]++;
else if(a[i]=='8')c[8]++;
else if(a[i]=='9')c[9]++;
}
s=0;
for(i=0;i<=10;i++)
{
if(a[i]==b[i])s++;
}
if(s==11)break;//字符串a等于b时结束当前循环
a[9]++;
for(i=9;i>=0;i--)//进位
{
if(a[i]==':'){a[i]='0';a[i-1]++;}
}
}
for(i=0;i<10;i++)
{
if(i==10)printf("%d",c[i]);
else printf("%d ",c[i]);
}
return 0;
}