1035 最长的循环节
基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题
 
正整数k的倒数1/k,写为10进制的小数如果为无限循环小数,则存在一个循环节,求<=n的数中,倒数循环节长度最长的那个数。

 
 
1/6= 0.1(6) 循环节长度为1
1/7= 0.(142857) 循环节长度为6
1/9= 0.(1)  循环节长度为1
Input
  1. 输入n10 <= n <= 1000)
Output
  1. 输出<=n的数中倒数循环节长度最长的那个数
Input示例
  1. 10
Output示例
  1. 7
  1. /*
  2. 51nod 1035:最长的循环节
  3.  
  4. 给你一个n,求1~n中 1/i的循环节最长是哪一个数
  5. 数据比较小,所以想的是直接模拟除法运算。但是不知道怎么判断 1/6 = 0.1666666这种 以及怎么判断
  6. 模拟是否应该停止。
  7. 后来发现题目可以等效于求最小的k使 10^k%n == 1,所以循环节的长度肯定小于等于 euler(n)。
  8. 至于1/6这个,我参考别人的是 先把10的因子除去,然后再进行计算,感觉不是很懂。
  9.  
  10. hhh - 2016/05/29 16:24:42
  11. */
  12.  
  13. #include <iostream>
  14. #include <vector>
  15. #include <cstring>
  16. #include <string>
  17. #include <cstdio>
  18. #include <queue>
  19. #include <cmath>
  20. #include <algorithm>
  21. #include <functional>
  22. #include <map>
  23. using namespace std;
  24. #define lson (i<<1)
  25. #define rson ((i<<1)|1)
  26. typedef long long ll;
  27. using namespace std;
  28. const int maxn = 1010100;
  29. const double PI = 3.1415926;
  30. const double eps = 1e-6;
  31.  
  32. int len[1010];
  33.  
  34. int gcd(int a,int b)
  35. {
  36. while(a % b != 0)
  37. {
  38. int t = a % b;
  39. a = b;
  40. b = t;
  41. }
  42. return b;
  43. }
  44.  
  45. void ini()
  46. {
  47. memset(len,0,sizeof(len));
  48. for(int i = 1;i <= 1000;i++)
  49. {
  50. int now = i;
  51. while(now % 2 == 0)
  52. now /= 2;
  53. while(now % 5 == 0)
  54. now /= 5;
  55. int t = 1;
  56. for(int h = 1;h <= now;h++)
  57. {
  58. t *= 10;
  59. t %= now;
  60. if(t == 1)
  61. {
  62. len[i] = h;
  63. break;
  64. }
  65. }
  66. }
  67. }
  68.  
  69. int read(){
  70. int ans=0;
  71. char last=' ',ch=getchar();
  72. while(ch<'0' || ch>'9')last=ch,ch=getchar();
  73. while(ch>='0' && ch<='9')ans=ans*10+ch-'0',ch=getchar();
  74. if(last=='-')ans=-ans;
  75. return ans;
  76. }
  77.  
  78. int main()
  79. {
  80. ini();
  81. int ans ;
  82. int Max= 0 ;
  83. int n = read();
  84. for(int i = 1;i <= n;i++)
  85. {
  86. // cout << len[i] << " ";
  87. if(len[i] > Max)
  88. {
  89. ans = i;
  90. Max = len[i];
  91. }
  92. }
  93. //cout <<endl;
  94. printf("%d\n",ans);
  95. return 0;
  96. }

  

51nod 1035:最长的循环节的更多相关文章

  1. 51nod 1035 最长的循环节

    正整数k的倒数1/k,写为10进制的小数如果为无限循环小数,则存在一个循环节,求<=n的数中,倒数循环节长度最长的那个数,假如存在多个最优的答案,输出所有答案中最大的那个数. 1/6= 0.1( ...

  2. 51nod 1035 最长的循环节 数学

    1035 最长的循环节 题目连接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1035 Description 正整 ...

  3. 51Node 1035----最长的循环节

    51Node  1035----最长的循环节 正整数k的倒数1/k,写为10进制的小数如果为无限循环小数,则存在一个循环节,求<=n的数中,倒数循环节长度最长的那个数.     1/6= 0.1 ...

  4. [51nod1035]最长的循环节

    题意:输出<=n的数中倒数循环节长度最长的那个数 解题关键:http://w3.math.sinica.edu.tw/math_media/d253/25311.pdf https://wenk ...

  5. 51 Nod 1035 最长的循环节 (此题还不是很懂,日后再看)

    转自: https://blog.csdn.net/define_danmu_primer/article/details/52456763 51nod 1035 最长的循环节(无限小数的循环节) 2 ...

  6. ACM学习历程—51NOD 1770数数字(循环节)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1770 这是这次BSG白山极客挑战赛的A题.由于数字全部相同,乘上b必然会 ...

  7. 51nod 1126 求递推序列的第N项 思路:递推模拟,求循环节。详细注释

    题目: 看起来比较难,范围10^9 O(n)都过不了,但是仅仅是看起来.(虽然我WA了7次 TLE了3次,被自己蠢哭) 我们观察到 0 <= f[i] <= 6 就简单了,就像小学初中学的 ...

  8. HDU 3746 Cyclic Nacklace 环形项链(KMP,循环节)

    题意: 给一个字符串,问:要补多少个字符才能让其出现循环?出现循环是指循环节与字符串长度不相等.比如abc要补多个变成abcabc.若已经循环,输出0. 思路: 根据最小循环节的公式,当len%(le ...

  9. KMP求字符串最小循环节

    证明1: 对于一个字符串S,长度为L,如果由长度为len的字符串s(字符串s的最小循环节是其本身)循环k次构成,那么字符串s就是字符串S的最小循环节 那么字符串有个很重要的性质和KMP挂钩,即  i ...

随机推荐

  1. B-day5

    1.昨天的困难,今天解决的进度,以及明天要做的事情 昨天的困难:昨天虽然完成了风险数据的图表统计,但是界面风格仍然不太满意,还在抓紧调试中:还有登录页的背景图,在想应该如何设计, 什么样的风格才好. ...

  2. 400多个开源项目以及43个优秀的Swift开源项目-Swift编程语言资料大合集

    Swift 基于C和Objective-C,是供iOS和OS X应用编程的全新语言,更加高效.现代.安全,可以提升应用性能,同时降低开发难度. Swift仍然处于beta测试的阶段,会在iOS 8发布 ...

  3. MySQL InnoDB锁机制

    概述: 锁机制在程序中是最常用的机制之一,当一个程序需要多线程并行访问同一资源时,为了避免一致性问题,通常采用锁机制来处理.在数据库的操作中也有相同的问题,当两个线程同时对一条数据进行操作,为了保证数 ...

  4. DOM中的事件对象(event)

    在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件相关的信息. 包括导致事件的元素.事件的类型以及其他与特定事件相关的信息. 例如:鼠标操作导致的事件对象中,会包含鼠 ...

  5. dede观看总结自己总结

    知识点一:{dede:arclist channelid="18" addfields="language,pfz" limit="0,5" ...

  6. LAMP 搭建

    p { margin-bottom: 0.25cm; line-height: 120% } LAMP 搭建 承 Ubuntu 17.10.1安装, 定制. 参考 电子工业出版社, Ubuntu完美应 ...

  7. Angular 学习笔记 ( 链接服务器 )

    ng 是做前端开发的, 所以通常我们会配上一个 API server. 本地调试时通常使用 proxy https://github.com/angular/angular-cli/blob/mast ...

  8. C++中友元

    一.友元分为两种 1.友元函数 2.友元类 二.解析比较好的博客:http://www.cnblogs.com/BeyondAnyTime/archive/2012/06/04/2535305.htm ...

  9. FPGA与MATLAB数据交互高效率验证算法——仿真阶段

    之前博文是对基本设计技巧的总结和一些小设计随笔,内容有点杂,缺乏目的性.本来后续计划设计几个小项目,但导师的任务比较紧,所以为了提高效率,后续博客会涉及到很多算法方面的设计与验证的内容,主要关于OFD ...

  10. Android学习——NDK交叉编译

    原创作品,转载请注明出处,严禁非法转载.如有错误,请留言! email:40879506@qq.com 一. 环境1.GNU/Linux Ubuntu12.04操作系统(x86) 二. 下载NDK安装 ...