zoukankan      html  css  js  c++  java
  • 周期串

    #include <stdio.h>
    #include <string.h>
    int main()
    {
     char word[100];int ok=0;
     scanf("%s",word);
     int l=strlen(word);
     for (int i=1; i<=l; ++i)//周期必是1到l,若为1,即是常数串
     {
      if (l%i==0)//最小周期必是长度的约数
      {
       int ok=1;
       for (int j=i; j<l; ++j)
       {
        if (word[j%i]!=word[j])//个人认为j-
    //word[j]为第二周期的第一个字符,word[j%i]是前一个周期的第一个字符(因为
    //j=i;j%i=0;j每加1,j%i也加1,直到最后一组word[j]都等于word[j%i],则i为周期
         {
          ok=0;
          break;
         }
       }
       if (ok)
       {
        printf("%d\n",i);
        break;// this is the least cycle
       }
      }
      else
       continue;
     }
     return 0;
    }

    上述代码,无MMP时输出了长度

    #include <stdio.h>
    #include<stdlib.h>
    #include <string.h>
    int main()
    {
    char word[100];
    scanf("%s",word);
    int l=strlen(word);
    for (int i=1; i<=l; ++i)//周期必是1到l,若为1,即是常数串
    //加上等号时,最小正周期为长度
    {
    if (l%i==0)//最小周期必是长度的约数
    {
    int ok=1;
    for (int j=i; j<l; ++j)
    {
    if (word[j%i]!=word[j])//个人认为j-1亦可
    //word[j]为第二周期的第一个字符,word[j%i]是前一个周期的第一个字符(因为
    //j=i;j%i=0;j每加1,j%i也加1,直到最后一组word[j]都等于word[j%i],则i为周期
    {
    ok=0;
    break;
    }
    }
    if (ok&&i!=l)
    {
    printf("%d\n",i);
    break;// this is the least cycle
    }
    else if(i==l)
    printf("No MMP\n");
    }
    }
    system("pause");
    return 0;
    }

  • 相关阅读:
    SOUI更新到2.0
    第三十一篇:SOUI布局之相对于特定兄弟窗口
    SOUI与WTL
    在SOUI中非半透明窗口如何实现圆角窗口?
    拥抱ARM妹纸第二季 之 第一次 点亮太阳
    拥抱ARM妹子第二季 之 序:我和春天有个约会
    解决自定义控件窗体缩放时闪烁
    The 50 Most Essential Pieces of Classical Music
    嵌入式开发目录
    C中浮点数转字符串
  • 原文地址:https://www.cnblogs.com/hxsyl/p/2446205.html
Copyright © 2011-2022 走看看