代码
#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
class node {
public:
long long x;
int length;
node(long long x, int length) {
this->x = x;
this->length = length;
}
};
void bfs(int n) {
queue<node> q;
q.push(node(1, 0));
while (!q.empty()) {
node temp = q.front();
q.pop();
if (temp.x % n == 0) {
printf("%lld\n", temp.x);
return;
}
if (temp.length < 18) {
q.push(node(temp.x * 10, temp.length + 1));
q.push(node(temp.x * 10 + 1, temp.length + 1));
}
}
}
int main() {
int n;
while (scanf("%d", &n) && n) {
bfs(n);
}
return 0;
}
超内存,超时怎么办?
①
试试将提交语言换成G++,c++提交超时,同样的代码G++就能过,我也不清楚为什么
②打表!
将题目可能的输出结果,首先全部输出治文件,用数组记录各个值的答案。
可以看到,有很大改善(当然,只局限做题)…