XYNUOJ 幂字符串
来源:互联网 发布:网络时钟同步设备 编辑:程序博客网 时间:2024/05/19 04:29
问题 G: 幂字符串
时间限制: 1 Sec 内存限制: 32 MB提交: 23 解决: 10
[提交][状态][讨论版]
题目描述
给你一个字符串,请你判断将此字符串转化成a^n形式的最大的n是多少。
例如:abcd=(abcd)^1,则n=1;
aaaa=a^4,则n=4;
ababab=(ab)^3,则n=3。
例如:abcd=(abcd)^1,则n=1;
aaaa=a^4,则n=4;
ababab=(ab)^3,则n=3。
输入
输入包含多组测试数据。每组输入为一个字符串,长度不超过100,其中不包含空格等空白符。当输入为一个“.”时,输入结束。
输出
对于每组输入,输出将此字符串转化成a^n形式的最大的n。
样例输入
abcdaaaaababab.
样例输出
143
#include<stdio.h>#include<string.h>int main(){char str[110],i,j,k,m;while(scanf("%s",str)!=EOF&&(strcmp(str,".")!=0))//这里的strcmp(str,".")!=0不能写成str[0]!='.' ,原因应该是题目没说不能输入一个点开头的字符串 {int max=0;int len=strlen(str);for(i=1;i<=len;i++){if(len%i==0){for(j=i;j<len;j++){if(str[j]!=str[j%i])//使从j开始之后的每一个数与最小子序列比较break;}if(j>=len)//判断是否已经比较完 m=len/i;if(m>max)//如果循环体中的i是从大到小循环,则不用比较 max=m;}}printf("%d\n",max);}return 0;}
阅读全文