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("\n\n");
??????? else
??????????? printf("\n");
??? }
??? return 0;
}
轉載于:https://www.cnblogs.com/qingtianBKY/p/6600244.html
總結
- 上一篇: 网易云API微信小程序
- 下一篇: Gcc详解以及静态库、动态库生成