想法是,先判断字符可以被多大的数字整除,然后就从小到大的一个一个字符串去试,结果对了,很开心。毕竟是自己想出来的,也不知道是不是正解,写的第一个博客,纪念一下这个笨笨的脑子也有稍微灵光的时候
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include
#include
#include
#include
#include
#include
using namespace std;
int main() {
char a[100], b[100];
int n,s[50];
cin >> n;
while (n–) {
scanf("%s", a);
int len = strlen(a);
int j = 0;
for (int i = 1; i <= len/2; i++) {
int qw = len % i;
if (qw == 0) {
s[j] = i;
j++;
}
}
s[j] = len;
for (int i = 0; i <= j; i++) {
for (int q = 0; q < s[i]; q++) {
b[q] = a[q];
}
int ss = 0;
int sum = 0;
for (int w = 0; w < len; w++) {
if (b[w%s[i]] == a[w])
{
sum++;
}
}
if (sum == len)
{
cout <<s[i] << endl;
break;
}
}
if (n != 0)
cout << endl;
}
}