题目大意: 对于一个整数,问大于等于这个整数的一个整数能够被其整除的整数,且这个整数只能包括0和1。
思路:DFS和BFS都行,我直接BFS暴搜,两个接口:乘10和乘10加1。第一发C++TLE了,然后G++AC了……
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
#define inf 0x3f3f3f3f
long long bfs(int n)
{
queue<long long>q;
q.push(1);
while(1)
{
long long ans=q.front();
q.pop();
if(ans%n==0)return ans;
q.push(ans*10);
q.push(ans*10+1);
}
}
int main()
{
int n;
while(~scanf("%d",&n),n)
{
cout<<bfs(n)<<endl;
}
return 0;
}