POJ 1426, Find The Multiple

Time Limit: 1000MS  Memory Limit: 10000K
Total Submissions: 4446  Accepted: 1908  Special Judge


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

扫描二维码关注公众号,回复: 6738122 查看本文章

Source
Dhaka 2002


//  POJ1426.cpp : Defines the entry point for the console application.
//

#include 
< iostream >
using   namespace  std;

int  main( int  argc,  char *  argv[])
{
    
int  N;
    unsigned 
long   long  que[ 800000 ];

    
while  (cin  >>  N  &&  N  !=   0 )
    {
        
int  front  =   0 , rear  =   0 ;
        que[rear
++ =   1 ;

        unsigned 
long   long  num;
        
while (front  !=  rear)
        {
            num 
=  que[front ++ ];
            front 
%=   800000 ;

            
if  ((num  %  N)  ==   0
                
break ;

            num 
*=   10 ;
            que[rear
++ =  num;
            rear 
%=   800000 ;

            
++ num;
            que[rear
++ =  num;
            rear 
%=   800000 ;
        }
        cout 
<<  num  <<  endl;
    }
    
return   0 ;
}

转载于:https://www.cnblogs.com/asuran/archive/2009/10/11/1580705.html

猜你喜欢

转载自blog.csdn.net/weixin_34195142/article/details/94139738
今日推荐