首页 > 代码库 > [kuangbin带你飞]专题一 简单搜索 - E - Find The Multiple
[kuangbin带你飞]专题一 简单搜索 - E - Find The Multiple
1 //Memory Time 2 //2236K 32MS 3 4 #include<iostream> 5 using namespace std; 6 7 int mod[524286]; //保存每次mod n的余数 8 //由于198的余数序列是最长的 9 //经过反复二分验证,436905是能存储198余数序列的最少空间10 //但POJ肯定又越界测试了...524286是AC的最低下限,不然铁定RE11 12 int main(int i)13 {14 int n;15 while(cin>>n)16 {17 if(!n)18 break;19 20 mod[1]=1%n; //初始化,n倍数的最高位必是121 22 for(i=2;mod[i-1]!=0;i++) //利用同余模定理,从前一步的余数mod[i/2]得到下一步的余数mod[i]23 mod[i]=(mod[i/2]*10+i%2)%n;24 //mod[i/2]*10+i%2模拟了BFS的双入口搜索25 //当i为偶数时,+0,即取当前位数字为0 。为奇数时,则+1,即取当前位数字为126 27 i--;28 int pm=0;29 while(i)30 {31 mod[pm++]=i%2; //把*10操作转化为%2操作,逆向求倍数的每一位数字32 i/=2;33 }34 while(pm)35 cout<<mod[--pm]; //倒序输出36 cout<<endl;37 }38 return 0;39 }
转载至:http://blog.csdn.net/lyy289065406/article/details/6647917
[kuangbin带你飞]专题一 简单搜索 - E - Find The Multiple
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。