周期串(Periodic Strings, UVa455)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char s[80];
int n, len;
scanf("%s", s);
len = strlen(s);
for (int i = 1; i <= len; i++) //假设周期是i,并且一个一个排除
{
if (len%i == 0) {
int ok = 1;
for (int j = i; j < len; j++)//从小的数开始,逐渐到大的,而如果找到那个最小的,就直接break掉
{
if (s[j] != s[j%i])
{
ok = 0;
break;
}
}
if (ok)
{
printf("%d ", i);
break;
}
}
}
system("pause");
}

原文地址:https://www.cnblogs.com/guohaoyu110/p/5723452.html