码迷,mamicode.com
首页 > 其他好文 > 详细

Find The Multiply

时间:2018-02-12 22:21:16      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:小结   font   大数   main   break   print   multi   ios   mil   

Find The Multiply poj-1426

    题目大意:给你一个正整数n,求任意一个正整数m,使得n|m且m在十进制下的每一位都是0或1。

    注释:n<=200。

      想法:看网上的题解全是bfs乱搜(其实我的做法也是bfs),我来说一说我这简单的bfs。其实这道题的精髓就在于如何考虑对于大数的处理。显然,我们可以用同余mod定理来搞定。

    最后,附上丑陋的代码... ...

 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4 long long ans[600001];
 5 int main()
 6 {
 7     int n;
 8     while(~scanf("%d",&n))
 9     {
10         if(n==0) return 0;
11         for(int i=1;;i++)
12         {
13             ans[i]=ans[i/2]*10+i%2;
14             if(ans[i]%n==0)
15             {
16                 break;
17             }
18         }
19         printf("%I64d\n",ans[i]);
20     }
21 }

    小结:定理的充分运用才是重要的... ...

Find The Multiply

标签:小结   font   大数   main   break   print   multi   ios   mil   

原文地址:https://www.cnblogs.com/ShuraK/p/8445643.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!