E

题目大意
找倍数
给你一个数,找到一个能数是它的倍数的数,当然这个数只能由0和1组成.......这个数最大200,比较唬人,其实这个数在最大也不超过2^64.。。。。简单广搜一下
/////////////////////////////////////////////
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<queue>
using namespace std;

long long BFS(long long s)
{
    queue<long long>Q;
    Q.push(1);

    while(Q.size())
    {
        long long q = Q.front();
        Q.pop();

        if(q % s == 0)
            return q;

        Q.push(q*10);
        Q.push(q*10+1);
    }

    return -1;
}

int main()
{
    long long s;

    while(scanf("%lld", &s), s != 0)
    {
        long long ans = BFS(s);

        printf("%lld ", ans);
    }

    return 0;

} 

原文地址:https://www.cnblogs.com/liuxin13/p/4648396.html