正整数k的倒数1/k,写为10进制的小数如果为无限循环小数,则存在一个循环节。
求小于等于n的数中,倒数循环节长度最长的那个数,
假如存在多个最优的答案,输出所有答案中最大的那个数。
1/6= 0.1(6) 循环节长度为1
1/7= 0.(142857) 循环节长度为6
1/9= 0.(1) 循环节长度为1
#include<iostream>
#include<cstring>
using namespace std;
int res[1005];
int main(){
memset(res,0,sizeof(res));
for (int t=1; t<=1000; t++){
int i=t;
while (i%2==0){
____(1)_________
}
while (i%5==0){
____(2)_________
}
int n=1;
for (int j=1; j<=i; j++){
n*=10;
______(3)________
if (n==1){
res[t]=j;
____(4)________
}
}
}
int n;
scanf("%d",&n);
int ans=0,maxn=0;
for (int i=1; i<=n; i++){
if (res[i]>maxn){
ans=i;
maxn=res[i];
}
}
printf("%d",ans);
return 0;
}