首先本题的两个连续的输出要用一个空行隔开,其次无循环周期的字符串被认为循环周期为字符个数,如qwer的循环周期为4
#include <stdio.h>
#include <string.h>
int main()
{
char s[85];
int T;
scanf("%d",&T);
while(T--) {
scanf("%s",s);
int k,n = strlen(s);
for (k = 1; k < n; k++) {
int q;
if(n%k == 0)
{
q = 1;
for(int i = k; i < n; i++) {
if(s[i] != s[i%k])
{ q = 0; break; }
}
}
if(q)
{
printf("%d\n",k);
if(T!=0) //最后一组时 T判断时为1判断生效后为0
printf("\n");
break;
}
}
if(k == n) //如果存在最小周期 T不会等于n
{
if(T == 0)
printf("%d\n",n);
else
printf("%d\n\n",n);
}
}
return 0;
}