水题-----判断循环的位数

题目链接:https://vjudge.net/problem/UVA-455

题解:本来是个水题,却暴露出了读题不认真的问题,最后输出循环体的位数,而不是循环体出现的次数.输出每两个加1个空行

        此处的假设5,while(n--)是先判断n!=0在循环n--。循环5次,循环中n为4,3,2,1,0;如果写while(--n)那先做差在判断n!=0,循环4次

ac代码:

#include<iostream>
#include<cstring>
#include<cstdio>
#define maxn 1100
using namespace std;
char s[maxn];
int main()
{
    int n,i,l,sum,k;
    cin>>n;
    getchar();
    while(n--)
    {
        scanf("%s",s);
        l=strlen(s);
        for(i=1; i<=l; i++)
        {
            int flag=0;
            if(l%i!=0)
                continue;
            for(int j=1; j<l/i; j++)
                if(strncmp(s,s+i*j,i)!=0)
                {
                    flag=1;
                    continue;
                }
            if(!flag)
            {
                    break;
            }
        }
        cout<<i<<endl;
        if(n!=0)  cout<<endl;
    }
    return 0;
}

posted @ 2020-04-10 12:12  Joelin12  阅读(190)  评论(0)    收藏  举报