UVA455 水题,然而小弟我总是WA,实在是检查不出来了,各位帮忙看看吧
UVA455 水题,然而我总是WA,实在是检查不出来了,各位帮忙看看吧
在下新手,之前用break貌似出了点问题所以用了goto,请勿见怪。。。。
通过了我自己测的N组数据,输出时候的空格什么的也注意了,参照了别人AC的代码,感觉输出完全相同,然而就是AC不了
下面是代码,帮帮忙看看谢谢啦各位
#include<stdio.h>
#include<string.h>
int main()
{
int n,T,i,k,OK,length;
char a[100]={0};
scanf("%d",&n);
while(n--)
{
scanf("%s",a);
length=strlen(a);
for(T=1;T<length;T++)//以T为周期
{
for(k=0;k<T;k++)//以k表示对在一个周期串时的位置
{
for(i=k;i+T<length;i=i+T)//下标表示正在检查的位置
{
if(a[i]!=a[i+T])goto l;//检验,若不相同,跳出循环,并在第21行跳出关于当前T的循环
else continue;
}
}
goto m;
l:;
}
m:printf("%d\n",T);if(n)printf("\n");
}
return 0;
}
------解决思路----------------------
LZ程序 对于如下输入不能输出正确结果:
aba
abca
abcda
abcdea
在下新手,之前用break貌似出了点问题所以用了goto,请勿见怪。。。。
通过了我自己测的N组数据,输出时候的空格什么的也注意了,参照了别人AC的代码,感觉输出完全相同,然而就是AC不了
下面是代码,帮帮忙看看谢谢啦各位
#include<stdio.h>
#include<string.h>
int main()
{
int n,T,i,k,OK,length;
char a[100]={0};
scanf("%d",&n);
while(n--)
{
scanf("%s",a);
length=strlen(a);
for(T=1;T<length;T++)//以T为周期
{
for(k=0;k<T;k++)//以k表示对在一个周期串时的位置
{
for(i=k;i+T<length;i=i+T)//下标表示正在检查的位置
{
if(a[i]!=a[i+T])goto l;//检验,若不相同,跳出循环,并在第21行跳出关于当前T的循环
else continue;
}
}
goto m;
l:;
}
m:printf("%d\n",T);if(n)printf("\n");
}
return 0;
}
------解决思路----------------------
LZ程序 对于如下输入不能输出正确结果:
aba
abca
abcda
abcdea