#include

kuangbin专题一 简单搜索 E,POJ 1426 Find The Multiple

POJ 1426   Find The Multiple
[kuangbin带你飞]专题一 简单搜索 E

题目链接:http://poj.org/problem?id=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

题意:

找出01构成的数字,且是n的倍数(如果存在多个可以只输出一个)
tip:
*10或者*10+1 找好边界  

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>

using namespace std ;

#define LL long long
int n ;
int flag = 0 ;

void mult(LL num , int len) {
    if(flag)
        return;

    if(len>=19) { // 无符号 LL 最长是 19 位数字  LL 也是 19 位 (可表示正负数)
        return;
    }

    if(num%n==0) {
        printf("%lld\n" , num);
        flag = 1 ;
        return;
    }
    mult(num*10 , len+1) ;
    mult(num*10 + 1 , len +1 ) ;
}

int main() {
    while(~scanf("%d" , &n)) {
        if(n==0) {
            break ;
        }
        flag = 0 ; 
        mult(1 , 0 ) ;

    }
    return 0 ;
}

 

posted @ 2017-10-08 17:51  0一叶0知秋0  阅读(189)  评论(0编辑  收藏  举报