51nod 1035:最长的循环节
- 输入n(10 <= n <= 1000)
- 输出<=n的数中倒数循环节长度最长的那个数
- 10
- 7
- /*
- 51nod 1035:最长的循环节
- 给你一个n,求1~n中 1/i的循环节最长是哪一个数
- 数据比较小,所以想的是直接模拟除法运算。但是不知道怎么判断 1/6 = 0.1666666这种 以及怎么判断
- 模拟是否应该停止。
- 后来发现题目可以等效于求最小的k使 10^k%n == 1,所以循环节的长度肯定小于等于 euler(n)。
- 至于1/6这个,我参考别人的是 先把10的因子除去,然后再进行计算,感觉不是很懂。
- hhh - 2016/05/29 16:24:42
- */
- #include <iostream>
- #include <vector>
- #include <cstring>
- #include <string>
- #include <cstdio>
- #include <queue>
- #include <cmath>
- #include <algorithm>
- #include <functional>
- #include <map>
- using namespace std;
- #define lson (i<<1)
- #define rson ((i<<1)|1)
- typedef long long ll;
- using namespace std;
- const int maxn = 1010100;
- const double PI = 3.1415926;
- const double eps = 1e-6;
- int len[1010];
- int gcd(int a,int b)
- {
- while(a % b != 0)
- {
- int t = a % b;
- a = b;
- b = t;
- }
- return b;
- }
- void ini()
- {
- memset(len,0,sizeof(len));
- for(int i = 1;i <= 1000;i++)
- {
- int now = i;
- while(now % 2 == 0)
- now /= 2;
- while(now % 5 == 0)
- now /= 5;
- int t = 1;
- for(int h = 1;h <= now;h++)
- {
- t *= 10;
- t %= now;
- if(t == 1)
- {
- len[i] = h;
- break;
- }
- }
- }
- }
- int read(){
- int ans=0;
- char last=' ',ch=getchar();
- while(ch<'0' || ch>'9')last=ch,ch=getchar();
- while(ch>='0' && ch<='9')ans=ans*10+ch-'0',ch=getchar();
- if(last=='-')ans=-ans;
- return ans;
- }
- int main()
- {
- ini();
- int ans ;
- int Max= 0 ;
- int n = read();
- for(int i = 1;i <= n;i++)
- {
- // cout << len[i] << " ";
- if(len[i] > Max)
- {
- ans = i;
- Max = len[i];
- }
- }
- //cout <<endl;
- printf("%d\n",ans);
- return 0;
- }
51nod 1035:最长的循环节的更多相关文章
- 51nod 1035 最长的循环节
正整数k的倒数1/k,写为10进制的小数如果为无限循环小数,则存在一个循环节,求<=n的数中,倒数循环节长度最长的那个数,假如存在多个最优的答案,输出所有答案中最大的那个数. 1/6= 0.1( ...
- 51nod 1035 最长的循环节 数学
1035 最长的循环节 题目连接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1035 Description 正整 ...
- 51Node 1035----最长的循环节
51Node 1035----最长的循环节 正整数k的倒数1/k,写为10进制的小数如果为无限循环小数,则存在一个循环节,求<=n的数中,倒数循环节长度最长的那个数. 1/6= 0.1 ...
- [51nod1035]最长的循环节
题意:输出<=n的数中倒数循环节长度最长的那个数 解题关键:http://w3.math.sinica.edu.tw/math_media/d253/25311.pdf https://wenk ...
- 51 Nod 1035 最长的循环节 (此题还不是很懂,日后再看)
转自: https://blog.csdn.net/define_danmu_primer/article/details/52456763 51nod 1035 最长的循环节(无限小数的循环节) 2 ...
- ACM学习历程—51NOD 1770数数字(循环节)
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1770 这是这次BSG白山极客挑战赛的A题.由于数字全部相同,乘上b必然会 ...
- 51nod 1126 求递推序列的第N项 思路:递推模拟,求循环节。详细注释
题目: 看起来比较难,范围10^9 O(n)都过不了,但是仅仅是看起来.(虽然我WA了7次 TLE了3次,被自己蠢哭) 我们观察到 0 <= f[i] <= 6 就简单了,就像小学初中学的 ...
- HDU 3746 Cyclic Nacklace 环形项链(KMP,循环节)
题意: 给一个字符串,问:要补多少个字符才能让其出现循环?出现循环是指循环节与字符串长度不相等.比如abc要补多个变成abcabc.若已经循环,输出0. 思路: 根据最小循环节的公式,当len%(le ...
- KMP求字符串最小循环节
证明1: 对于一个字符串S,长度为L,如果由长度为len的字符串s(字符串s的最小循环节是其本身)循环k次构成,那么字符串s就是字符串S的最小循环节 那么字符串有个很重要的性质和KMP挂钩,即 i ...
随机推荐
- B-day5
1.昨天的困难,今天解决的进度,以及明天要做的事情 昨天的困难:昨天虽然完成了风险数据的图表统计,但是界面风格仍然不太满意,还在抓紧调试中:还有登录页的背景图,在想应该如何设计, 什么样的风格才好. ...
- 400多个开源项目以及43个优秀的Swift开源项目-Swift编程语言资料大合集
Swift 基于C和Objective-C,是供iOS和OS X应用编程的全新语言,更加高效.现代.安全,可以提升应用性能,同时降低开发难度. Swift仍然处于beta测试的阶段,会在iOS 8发布 ...
- MySQL InnoDB锁机制
概述: 锁机制在程序中是最常用的机制之一,当一个程序需要多线程并行访问同一资源时,为了避免一致性问题,通常采用锁机制来处理.在数据库的操作中也有相同的问题,当两个线程同时对一条数据进行操作,为了保证数 ...
- DOM中的事件对象(event)
在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件相关的信息. 包括导致事件的元素.事件的类型以及其他与特定事件相关的信息. 例如:鼠标操作导致的事件对象中,会包含鼠 ...
- dede观看总结自己总结
知识点一:{dede:arclist channelid="18" addfields="language,pfz" limit="0,5" ...
- LAMP 搭建
p { margin-bottom: 0.25cm; line-height: 120% } LAMP 搭建 承 Ubuntu 17.10.1安装, 定制. 参考 电子工业出版社, Ubuntu完美应 ...
- Angular 学习笔记 ( 链接服务器 )
ng 是做前端开发的, 所以通常我们会配上一个 API server. 本地调试时通常使用 proxy https://github.com/angular/angular-cli/blob/mast ...
- C++中友元
一.友元分为两种 1.友元函数 2.友元类 二.解析比较好的博客:http://www.cnblogs.com/BeyondAnyTime/archive/2012/06/04/2535305.htm ...
- FPGA与MATLAB数据交互高效率验证算法——仿真阶段
之前博文是对基本设计技巧的总结和一些小设计随笔,内容有点杂,缺乏目的性.本来后续计划设计几个小项目,但导师的任务比较紧,所以为了提高效率,后续博客会涉及到很多算法方面的设计与验证的内容,主要关于OFD ...
- Android学习——NDK交叉编译
原创作品,转载请注明出处,严禁非法转载.如有错误,请留言! email:40879506@qq.com 一. 环境1.GNU/Linux Ubuntu12.04操作系统(x86) 二. 下载NDK安装 ...