您的位置:首页 > 其它

习题3-4 UVa455 Periodic Strings

2015-10-31 20:31 197 查看
要点;

1.输入的字符串一点可以整除最小周期数

2.第一周期与第二周期所对应的字符相等

源代码:

#include<stdio.h>
#include<string.h>
int main()
{
char s[105];
int len, i,j,t;
scanf("%d", &t);
while (t--)
{
scanf("%s", s);
n = strlen(s);
for (i = 1; i <= len; i++) //i作为周期数的范围,i从1到n中寻找最小周期数
if (len %i == 0)   //先判断是否能整除i,减小运算量
{
for (j = i; j < len; j++)  //如果第一周期与第二周期所对应的数不相等,break跳出循环,i++
if (s[j] != s[j%i])
break;
if (j ==len)     //如果完全相等,j将等于len,这时输出i的值即为最小周期数
{
printf("%d\n", i);
if(t) printf("\n");    // 题目要求答案隔行输出
break;     //用break跳出循环,达到最小这一隐含条件
}
}
}
return 0;
}


学习心得:

1.利用break跳出循环,

*若有多个循环,break只能跳出最近的那个

(最后一步也可尝试直接用return 0;跳出—-不行,while会没意义,只能输出一个,此处不能用)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: