您的位置:首页 > 其它

51nod 1035 最长的循环节【模拟除法】

2017-11-05 14:11 211 查看
#include<iostream>
#include<string.h>
using namespace std;
int d[1000000];

int fun(int x){  //模拟除法  一点一点的除  直到 一个数出现两次 或者除尽 就结束 返回其长度
int k=1,l=1;
memset(d,0,sizeof(d));
while(1){
k*=10;
k%=x;
d[k]++;
l++;
if(d[k]==2||k==0) break;
}
return l;
}
int main(){
int n;
cin>>n;
int maxx=0,max=0;
for(int i=1;i<=n;i++){// 对n个数进行一个 取最大的操作
if(fun(i)>maxx){
maxx=fun(i);
max=i;
}
}
cout<<max<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: