51nod 1035 最長的循環節【模擬除法】

#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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章