link
基本思路:
观察输入数字,易得,在long long 范围内即可找到符合要求的数字,然后深搜即可;
#include<iostream>
using namespace std;
#define ll long long
int flag=0;
int n;
void dfs(int w,ll a){
if(w>19||flag==1) return;
if(a%n==0){
flag=1;
cout<<a<<endl;
return;
}
dfs(w+1,a*10);//分别对0和1的情况搜索
dfs(w+1,a*10+1);
}
int main(){
while(cin>>n&&n!=0){
flag=0;
dfs(1,1);
}
return 0;
}