深搜,注意搜索深度的限制,19是可行的深度:
AC代码如下:
#include<iostream>
#include<cstdio>
using namespace std;
int n;
int flag;//深搜结束的标志
long long m;
void dfs(long long t,int k)
{
if(flag)return;
if(k==19)return;
if(t%n==0)
{ flag=1;
m=t;
return;
}
dfs(10*t,k+1);
dfs(10*t+1,k+1);
}
int main()
{
while(cin>>n&&n)
{flag=0;//没有找到目标节点
dfs(1,0);//从1开始的深搜
printf("%lld\n",m);
}
}