题目链接:http://poj.org/problem?id=1426
可能数据比较水,没有用到大整数。刚刚开始的时候,想从后往前加0或者1,发现有点难写,后来想到先放一个1,再1*10,1*10+1,这样也可以存遍历这种只有0和1的数,但是发现STL写队列会T,后来队列自己写,就A了。
#include <stdio.h> long long Q[10000000]; int main() { int n; while(scanf("%d",&n),n) { int front = 0; int rear = 0; Q[rear++] = 1; while(1) { long long tmp = Q[front++]; if(tmp%n==0) { printf("%lld ",tmp); break; } Q[rear++]=tmp*10; Q[rear++]=tmp*10+1; } } return 0; }