• POJ1426——BFS——Find The Multiple


    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

    Source

    大意:输入一个数,要求输出一个数满足是这个数的倍数,而且只由1和0构成,BFS用c++交超时,g++过了 (*@ο@*)
    #include<cstdio>
    #include<cstring>
    #include<queue>
    using namespace std;
    queue <long long> q;
    int n;
    long long  bfs()
    {
        while(!q.empty())
        q.pop();
        q.push(1);
        while(!q.empty()){
        long long p = q.front();
          q.pop();
          if(p%n == 0) return p;
          q.push(p*10);
          q.push(p*10+1);
        }
    }
    int main()
    {
        while(~scanf("%d",&n)&&n){
                printf("%lld
    ",bfs());
        }
        return 0;
    }
    View Code
     
  • 相关阅读:
    一、反射机制介绍_Class 对象获取
    六、.XPATH 技术_快速获取节点
    五、.DOM4J 方式解析 XML 数据
    四、.JDOM 解析 XML 数据
    三、SAX 方式解析 XML 数据
    二、DOM方式解析XML
    一、Schema验证XML
    三、线程同步Synchronized
    二、线程状态
    JDK8Lambda和方法的引用
  • 原文地址:https://www.cnblogs.com/zero-begin/p/4356097.html
Copyright © 2020-2023  润新知