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


    Find The Multiple

    题目链接:https://vjudge.net/contest/65959#problem/E

    题目:

    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
    题意:给出一个整数n,(1 <= n <= 200)。求出任意一个它的倍数m,要求十进制m必须只由十进制的'0'或'1'组成。
    思路:bfs,,将1压入队列中,进行1*10,1*10+1;就变成1->10,11,将10,11再压入队列中,进行操作,10->100,101,11->110,111.....
    //
    // Created by hjy on 2019/7/10.
    //
    #include<iostream>
    #include<queue>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    typedef long long ll;
    int m;
    void bfs(ll x)
    {
        queue<ll>qu;
        qu.push(x);
        while(!qu.empty())
        {
            ll result=qu.front();
            qu.pop();
            if(result%m==0)
            {
                cout<<result<<endl;
                return;
            }
            qu.push(result*10);
            qu.push(result*10+1);
    
        }
    }
    int main()
    {
        while(cin>>m&&m)
        {
            bfs(1);
        }
        return 0;
    
    }
  • 相关阅读:
    独角戏
    开源引擎
    如何实现一个UI系统
    VC编程规范—程序员应该这样写代码
    夕阳下的熊猫香[转]
    在桌面上显示屏保
    在WinSock上使用IOCP
    结构体对齐的具体含义(#pragma pack)
    一个程序员的奋斗
    让汇编揭开死循环的神秘面纱
  • 原文地址:https://www.cnblogs.com/Vampire6/p/11163092.html
Copyright © 2020-2023  润新知