求助TLE了
查看原帖
求助TLE了
516905
cwqluo楼主2021/8/10 16:45

用字符串做的,样例能过,但其他都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;
}
2021/8/10 16:45
加载中...