在《C语言参悟之旅》中看到这个字符串指数的算法,没看懂。悲剧。
亏自己还是学数学的。掩面。。。
不知道什么时候能看懂这样的语言。。。
算法如下:
#include<stdio.h>
#include<string.h>
char s[2000002];
void main()
{
int i,j,m,n;
while(gets(s) && strcmp(s,"."))
{
m=n=strlen(s);
for(i=2;i<=n;i++)
{
while(n%i==0)
{
n/=i;
for(j=0;j<m-m/i && s[j]==s[j+m/i];j++);
if(j==m-m/i) m/=i;
}
}
printf("%d\n",strlen(s)/m);
}
}