题目链接:https://vjudge.net/problem/POJ-1426
题目:给定一个n,求一个由0 1组成的十进制数x,x是n的倍数。
思路:bfs枚举每一种01串组成情况,对上一些情况,只需要末尾加0或者1去枚举下一些情况
1 #include<stdio.h> 2 #include<queue> 3 using namespace std; 4 5 int n; 6 7 bool bfs(){ 8 9 queue<long long> que; 10 long long a = 1; 11 que.push(a); 12 13 while(!que.empty()){ 14 long long b = que.front(); 15 que.pop(); 16 17 if(b%n == 0){ 18 printf("%lld ",b); 19 return true; 20 } 21 22 que.push(b*10); 23 que.push(b*10+1); 24 } 25 26 return true; 27 } 28 29 30 int main(){ 31 32 while(scanf("%d",&n)){ 33 if(!n) break; 34 bfs(); 35 } 36 37 return 0; 38 }