题意 给你一个数n,你要找出一个只由0和1组成的不超过100位的数,使得该数是n的m倍 思路 这是一道BFS题,入队的时候有两种情况:一种是10t;一种是10t+1;这题还有个坑点是用C++的STL的队列会T,所以需要自己写一个队列 题目链接 http://poj.org/problem?id=1426 代码 #include<iostream>#include<queue>using namespace std; long long a[10000000]; long long bfs(int N) { int front = 0; int rear = 0; a[rear++] = 1; while (front != rear) { long long tmp = a[front++]; if (tmp % N == 0) { return tmp; } a[rear++] = tmp * 10; a[rear++] = tmp * 10 + 1; } return -1; } int main() { int N; while (cin >> N) { if (N == 0)break; cout << bfs(N) << endl; } return 0; } ……

阅读全文