Find The Multiple UVALive

简单BFS 

 1 #include <iostream>
 2 using namespace std;
 3 #include<string.h>
 4 #include<set>
 5 #include<stdio.h>
 6 #include<math.h>
 7 #include<queue>
 8 #include<map>
 9 #include<algorithm>
10 #include<cstdio>
11 #include<cmath>
12 #include<cstring>
13 #include <cstdio>
14 #include <cstdlib>
15 long long  p1(long long n)
16 {
17     return n*10;
18 }
19 long long p2 (long long n)
20 {
21     return n*10+1;
22 }
23 int main()
24 {
25     long long n,s;
26     while(cin>>n)
27     {
28         if(!n)
29             break;
30         queue<long long>TM;
31         TM.push(1);
32         while(!TM.empty())
33         {
34             if(TM.front()%n==0)
35                 break;
36             for(int i=0;i<2;i++)
37             {
38                 if(i==0)
39                     s=p1(TM.front());
40                 else
41                     s=p2(TM.front());
42                 TM.push(s);
43             }
44             TM.pop();
45         }
46         cout<<TM.front()<<endl;
47     }
48     return 0;
49 }
View Code

 

原文地址:https://www.cnblogs.com/dulute/p/7272743.html