• c语言 周期


    //问题:如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串的周期为k.例如,abcabcabc 以3为周期(同时它也以6为周期)
    //输入一个长度不超过80的字符串,输出其最小的周期
    #include<stdio.h>
    #include<string.h>
    const int maxn=100;
    char s[maxn];
    int main(){
        int T;
        scanf("%d",&T);
        while(T--){
            scanf("%s",s);
            for(int i=1;i<=strlen(s);i++){
                int n=0,falg=0;
                //如果是周期 必须能被整除
                if(strlen(s)%i==0){
                    for(int j=0;j<strlen(s);j++){
                        //每个周期内的值
                        if(s[j]==s[j%i]){
                            n++;
                            //当n等于strlen(s)时 就是结束
                            if(n==strlen(s)){
                                printf("%d",i);
                                //结束循环的标记
                                falg=1;
                                break;
                            }
                        }
                    }
                }
                if(falg)
                    break;
            }
            if(T)
                printf(" ");
            else
                printf(" ");
        }
        return 0;
    }

  • 相关阅读:
    【[AH2017/HNOI2017]礼物】
    【[ZJOI2014]力】
    FFT抄袭笔记
    【[SCOI2015]小凸玩矩阵】
    【[SDOI2017]新生舞会】
    bzoj 3277: 串
    【[ZJOI2015]诸神眷顾的幻想乡】
    【[TJOI2017]DNA】
    【[TJOI2018]碱基序列】
    【[TJOI2018]异或】
  • 原文地址:https://www.cnblogs.com/qingtianBKY/p/6600244.html
Copyright © 2020-2023  润新知