题目
源地址:
http://poj.org/problem?id=1426
理解
使用了BFS来搜索满足条件的数,注意必须使用long long,否则数据不够。
代码
#include <iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<stack>
#include<queue>
#include<iomanip>
#include<cmath>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
long long a;
void bfs()
{
queue<long long>q;
int i, j;
long long x = 1, pos;
q.push(x);
while (!q.empty())
{
pos = q.front();
q.pop();
for (i = 0; i < 2; i++)
{
x = pos * 10 + i;
if (x % a == 0)
{
cout << x << endl;
return;
}
q.push(x);
}
}
}
int main(int argc, char const *argv[])
{
int i, j;
while (cin >> a && a)
{
if (a == 1)
{
cout << "1" << endl;
continue;
}
bfs();
}
return 0;
}
更新日志
- 2014年08月12日 已AC。