POJ 2406

来源:互联网 发布:dock软件iphone6s 编辑:程序博客网 时间:2024/06/05 09:04

思路:由于题目要求的是最大值,因此从n开始向下查找,第一次出现的满足条件的那个数就是最大的,查找就可以结束,如果查找到1是仍未找到合适的值,则为1,就是说不是任何字符串的次方如abcd


#include<stdio.h>#include<string.h>#define N 1000001int str_judge(int n,int i,char * pstr){int j,k,p = 0;if(n%i==0){for(j = 0;j<n-i;j++){if(*(pstr+j)==*(pstr+j+i))p = 1;elsereturn 0;}return p;}elsereturn 0;}int main(){int counter,k,len_str;char str[N]={'0'};while(strcmp(str,".")!=0){counter = 0;scanf("%s",str);getchar();len_str = strlen(str);for(k = 1;k<len_str;k++){if(str_judge(len_str,k,str)==1){printf("%d\n",len_str/k);counter++;break;}}if(counter==0&&strcmp(str,".")!=0)printf("%d\n",1);}}


0 0
原创粉丝点击