习题3-4 周期串(Periodic Strings, UVa455)
如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。例 如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。
如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。例 如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。
#include<stdio.h>
#include<string.h>
int main()
{
char a[100];
scanf("%s",a);
int k=1,n=strlen(a);
//遍历判断
for(int i=1;i<n;)
{
if(a[i]==a[0]&&n%i==0)
{
k=i;
for(int j=i+1;j<n;j++)
{
//判断次周期的字符串相等
if(a[j%k]!=a[j])
{
i=j;
break;
}
}
}
else
i++;
k=i;
}
printf("%d\n",k);
}
周期字符串输不出来,忧伤,有大佬帮忙指出问题所在吗(暂时忽略代码混乱,算法很笨的问题)。