1040 - 幂字符串
给你一个字符串,请你判断将此字符串转化成a^n形式的最大的n是多少。
例如:abcd=(abcd)^1,则n=1;
aaaa=a^4,则n=4;
ababab=(ab)^3,则n=3。
Input
输入包含多组测试数据。每组输入为一个字符串,长度不超过100,其中不包含空格等空白符。当输入为一个“.”时,输入结束。
Output
对于每组输入,输出将此字符串转化成a^n形式的最大的n。
Examples
Input
abcd aaaa ababab .
Output
1 4 3
Solution C
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char word[110]; while(scanf("%s",word)==1) { int len=strlen(word); int i,j; if(word[0]=='.'&&len==1) break; for(i=1; i<=len; i++) if(len%i==0) { int ok=1; for(j=i; j<len; j++) if(word[j]!=word[j%i]) { ok=0; break; } if(ok) { break; } }printf("%d\n",len/i); } return 0; }
Solution C++
#include<cstdio> #include<string> using namespace std; char s[101]; int main() { string a,b,c; int i,t; while(scanf("%s",s)!=EOF) { a=s; if(a==".") break; b=""; for(i=0;;i++) { b+=a[i]; if(a.size()%b.size()) continue; c=""; t=0; while(c.size()<a.size()) { c+=b; t++; } if(c==a) { printf("%d\n",t); break; } } } return 0; }