#include<iostream>
#include<cstring>
using namespace std;
int flag=0;
void dfs(unsigned long long t,int x,int k)//k是搜索层数 x是目标 t是当前数字
{
if(k==19||flag) return;
if(t%x==0)
{
cout<<t<<endl;
flag=1;
return;
}
dfs(t*10,x,k+1);//模拟0
dfs(t*10+1,x,k+1);//模拟1
}
int main()
{
int x;
while(cin>>x)
{
flag=0;
dfs(1,x,0);
}
return 0;
}
这个搜索层数是随缘的 但是可以通过同余定理球出来 用bfs比较麻烦 所以用dfs bfs一般求最短