https://vjudge.net/problem/POJ-1426
Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.
Input
The input file may contain multiple test cases. Each line contains a value of n (1 <= n <= 200). A line containing a zero terminates the input.
Output
For each value of n in the input print a line containing the corresponding value of m. The decimal representation of m must not contain more than 100 digits. If there are multiple solutions for a given value of n, any one of them is acceptable.
Sample Input
2
6
19
0
Sample Output
10
100100100100100100
111111111111111111
1 #include <iostream>
2 #include <cstdio>
3 #include <queue>
4 #define ll long long
5 using namespace std;
6 void bfs(int n)
7 {
8 queue<ll>q;
9 q.push(1);
10 while(!q.empty())
11 {
12 int i;
13 ll x;
14 x=q.front();
15 q.pop();
16 if(!(x%n))
17 {
18 printf("%lld\n",x);
19 return ;
20 }
21 q.push(x*10);
22 q.push(x*10+1);
23 }
24 }
25 int main()
26 {
27 int n;
28 while(scanf("%d",&n))
29 {
30 if(!n) break;
31 else bfs(n);
32 }
33 return 0;
34 }
Find The Multiple
原文:https://www.cnblogs.com/Edviv/p/11441078.html