poj 1426 http://poj.org/problem?id=1426

//思路:一位一位的扩展,如果满足 ans%n==0 直接返回
#include<iostream>
#include<stdio.h>
#include<queue>
using namespace std;
long long ans;
int n;
void BFS()
{
    queue<long long> q;
    q.push(1);
    while(!q.empty())
    {
        ans=q.front();
        q.pop();
        if(ans%n==0)
         return ;
        q.push(10*ans);//扩展一个0
        q.push(10*ans+1);//扩展一个1;
    }
}
int main()
{

    while(scanf("%d",&n),n)
    {
        BFS();
        printf("%lld\n",ans);
    }
    return 0;
}

你可能感兴趣的:(poj 1426 http://poj.org/problem?id=1426)