一开始没有思路,写出来后还是没AC。后来发现因为flag没有在循环里赋值。
写这道题需要用到substr函数。
#include<iostream>
using namespace std;
int main()
{
// freopen("xxx.in","r",stdin);
// freopen("yyy.out","w",stdout);
string s1,a="",s2="";
bool flag;
for(int i=0;i<10;i++)
{
flag=false;
cin >> s1;
a=s1.substr(0,1);
if(s1[0]=='.')
break;
else
{
for(int j=1;j<=s1.size()/2;j++)
{
s2="";
a=s1.substr(0,j);
for(int k=0;k<(s1.size()/a.size());k++)
{
s2=s2+a;
}
if(s2==s1)
{
flag=true;
break;
}
}
if(flag)
cout << (s1.size()/a.size()) << '\n';
else
cout << "1\n";
}
}
// fclose(stdin);
// fclose(stdout);
return 0;
}