Find The Multiple(poj 1426)

Description

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

题意很明确;输入一个数,输出这个数的哟个整倍数,输出的数必须只有0和1组成;我会告诉你这题Special Judge??
题目不是很难,用 long long +bfs(其实无所谓用不用)266ms 水过;
 1 #include<queue>
 2 #include<cstdio>
 3 using namespace std;
 4 int N;
 5 void bfs()
 6 {
 7     long long i,q,p=1;
 8     queue<long long>que;
 9     que.push(p);
10     while(!que.empty())//简单BFS
11     {
12         p=que.front();
13         que.pop();
14         for(i=0;i<2;i++)//因为只有 0和1
15         {
16             q=10*p+i;
17             if(q%N==0)
18             {
19                 printf("%lld\n",q);
20                 return ;
21             }
22             que.push(q);
23         }
24     }
25 }
26 int main()
27 {
28     int a,b;
29     while(scanf("%d",&a)&&a)
30     {
31         if(a==1)//1有点特殊,所以单独处理;
32         {
33             printf("1\n");
34             continue;
35         }
36         N=a;
37         bfs();
38     }
39     return 0;
40 }
View Code

 

posted @ 2013-08-26 14:34  孔凡凯凯  阅读(221)  评论(0编辑  收藏  举报