题目:E - 找倍数
思路:BFS
,从t为1
开始,每次位置有两种情况所以加1
或者加0
#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
#define ll long long
using namespace std;
const ll INF = 1e101;
int n;
void slove()
{
ll k = 1;
queue<ll> Q;
Q.push(k);
while(!Q.empty())
{
ll t = Q.front();
Q.pop();
if(t >= INF) continue;
if(t % n == 0)
{
cout << t << endl;
return ;
}
Q.push(t * 10);
Q.push(t * 10 + 1);
}
return ;
}
int main()
{
while(cin >> n, n)
{
slove();
}
return 0;
}