51nod oj 1035 最长的循环节 【循环】

来源:互联网 发布:头影测量软件数据 编辑:程序博客网 时间:2024/06/07 03:34

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
输入n(10 <= n <= 1000)
Output
输出<=n的数中倒数循环节长度最长的那个数
Input示例
10
Output示例
7


循环区间最大为1000====


代码:

#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int shu[3000];int slove(int xx){int yu=1;for (int i=1;i<=2500;i++){yu%=xx;shu[i]=yu;if (yu==0)return 0;yu*=10;}for (int i=2499;i;i--){if (shu[i]==shu[2500]){return 2500-i;}}}int main(){int p=0,ji,ans=1;int n;scanf("%d",&n);for (int i=1;i<=n;i++){ji=slove(i);if (ji>p){p=ji;ans=i;}}printf("%d\n",ans);return 0;}


0 0
原创粉丝点击