一道签到题
2015-08-08 17:18
246 查看
题目描述
我想说这是一道签到题,意思就是本次测试中最水的一道,不过我这样说你真的愿意相信我吗?哈哈,题目是这样的给你一下小数,然后请告诉我分别告诉我这个小数的循环节的循环次数、循环节以及循环节长度
输入
输入包括多组测试数据每组测试数据1行,包括一个小数,小数的长度不超过200,小数大于0小于100
输出
分别输出这个小数的循环节的长度、循环节以及循环次数,中间以一个空格间隔
样例输入
8.6987698769876987
0.666
5.1
样例输出
4 6987 4
1 6 3
1 1 1
用别人的话总结一下,如果对于p数组中的 i, 符合 i % ( i - p[i] ) == 0 && p[i] != 0 , 则说明字符串循环,而且
循环节长度为: i - p[i]
循环次数为: i / ( i - p[i] ) //算次数不需要p[i] != 0这个条件
很像之前在杭电写的一道求字符串中循环节的循环次数是可直接写作
我想说这是一道签到题,意思就是本次测试中最水的一道,不过我这样说你真的愿意相信我吗?哈哈,题目是这样的给你一下小数,然后请告诉我分别告诉我这个小数的循环节的循环次数、循环节以及循环节长度
输入
输入包括多组测试数据每组测试数据1行,包括一个小数,小数的长度不超过200,小数大于0小于100
输出
分别输出这个小数的循环节的长度、循环节以及循环次数,中间以一个空格间隔
样例输入
8.6987698769876987
0.666
5.1
样例输出
4 6987 4
1 6 3
1 1 1
用别人的话总结一下,如果对于p数组中的 i, 符合 i % ( i - p[i] ) == 0 && p[i] != 0 , 则说明字符串循环,而且
循环节长度为: i - p[i]
循环次数为: i / ( i - p[i] ) //算次数不需要p[i] != 0这个条件
#include<stdio.h> #include<string.h> #define max 220 char a[max],b[max]; int len,len1,p[max]; void getp() { int i=0,j=-1; p[i]=j; while(i<len1) { if(j==-1||b[i]==b[j]) { i++; j++; p[i]=j; } else j=p[j]; } } int main() { while(scanf("%s",&a)!=EOF) { int i,j=0,k;//注意j=0不要忘记,不然会一直出现该程序不能written... len=strlen(a); for(i=0;i<len;i++) { if(a[i]=='.') k=i+1; } len1=len-k; for(;k<len;k++) b[j++]=a[k];//引用新的数组记录小数,之前的想法是继续用a,但后来就晕了,不知该怎么写下去 getp(); printf("%d ",len1-p[len1]); for(i=p[len1];i<len1;i++) printf("%c",b[i]); printf(" %d\n",(len1)/((len1)-p[len1])); } return 0; }
很像之前在杭电写的一道求字符串中循环节的循环次数是可直接写作
getp(); if((len)%((len)-p[len])==0) printf("%d\n",(len)/((len)-p[len])); else printf("1\n");
相关文章推荐
- 明明的随机数
- leetcode--WildcardMatching
- WebLogic、WebSphere、JBOSS、Tomcat之间的区别
- HDU kiki's game (周赛1)
- 【NOI2012】【BZOJ2875】随机数生成器
- 【python网络编程】使用rsa加密算法模块模拟登录新浪微博
- ABP 基础设施层——集成 NHibernate
- 讨论汉诺塔之谜
- HDU 3360 National Treasures 奇偶匹配的最低点覆盖
- 内存管理中常见的问题
- php基于双向循环队列实现历史记录的前进后退等功能
- 守望者的逃离
- javaweb中利用filter进行修改字符集
- hpuoj 1868 寻宝【BFS】
- POJ 1644 放苹果 递推 递归
- HTML/CSS 选择符优先级
- [leetcode 236]Lowest Common Ancestor of a Binary Tree
- Topcoder SRM 663 Div2 Hard: CheeseRolling(状压DP)
- 2015 多校赛 第五场 1010 (hdu 5352)
- Uva 3027