nefuoj-1011:最长循环节
2016-02-10 22:21
337 查看
| |||
description | |||
正整数k的倒数1/k,写为10进制的小数如果为无限循环小数,则存在一个循环节,求<=n的数中,倒数循环节长度最长的那个数。 1/6= 0.1(6) 循环节长度为1 1/7= 0.(142857) 循环节长度为6 1/9= 0.(1) 循环节长度为1 | |||
input | |||
输入n(10 <= n <= 1000) | |||
output | |||
输出<=n的数中倒数循环节长度最长的那个数 | |||
sample_input | |||
10 | |||
sample_output | |||
7 | |||
hint | |||
source | |||
51nod点头网 |
code:
//2016.2.10
//做完刘汝佳59页3.8练习以后再nefuoj上找到的练习;
//依旧是同一个思路;
//难得的一次ac的题;
#include <iostream>
using namespace std;
int main()
{
double digit[1050];//每一位的小数;
int integer[1050];//每一位的整数;
int ans;
int ansn=1;
int n;
while(cin>>n)
{
for(int i=4; i<=n; i++)//4之前的循环节都是1,所以从4开始循环就可以;
{
bool flag=0;
digit[0]=1;
integer[0]=1.0/(i*1.0);
for(int j=1; ; j++)
{
digit[j]=(digit[j-1]-integer[j-1]*i)*10;
integer[j]=digit[j]/i;
for(int k=1; k<j; k++)
{
if(digit[j]==digit[k])
{
ans=j-k+1;
flag=1;
break;
}
}
if(flag) break;
}
ansn<ans? ansn=ans: ansn=ansn;//求ans的最大值;
}
cout<<ansn<<endl;
}
return 0;
}
相关文章推荐
- 网易新闻首页demo
- 递归创建级联目录之Python_VS_PHP
- 1006. Sign In and Sign Out (25)
- markdown你的生活 | markdown编辑器简介
- BZOJ 2243 染色 [树链剖分]
- 1005. Spell It Right (20)
- 【HDOJ】4328 Cut the cake
- 当phantomJS遇上Requests
- 文件系统管理
- 优先级队列——PriorityQueue
- 1004. Counting Leaves (30)
- 磁盘管理
- PyMySQL与Django的结合
- 队列单向
- 1003. Emergency (25)
- HDU 3853 LOOPS 概率DP 期望
- 机械键盘科普知识
- 1002. A+B for Polynomials (25)
- JavaScript创建对象之稳妥构造函数模式(七)
- 待解决