简单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 }