本题要求输出一个仅有0,1组成的数能过整除n,任意输出一个就行了,利用dfs来做,遍历到19位就行啦(其实我是百度的)
#include<iostream>
#include<cstdio>
typedef long long ll;
int n,flag;
void dfs(int x,ll y)
{
if(x==19||flag) return;
if(y%n==0)
{
printf("%lld\n",y);
flag=1;return;
}
dfs(x+1,y*10);
dfs(x+1,y*10+1);
}
int main()
{
//freopen("E.txt","r",stdin);
while(scanf("%d",&n)!=EOF)
{
//printf("%Id\n",n);
if(n==0) break;
flag=0;
dfs(0,1);
}
return 0;
}