看了半天题意,竟然是找倍数。。。。。这个倍数必须是1或0组成的。
直接枚举1和0。就可以了。dfs。因为1<n<200.所以m在ull 情况内都有解,
#include<cstdio>
#include<cstring>
#include<iostream>
#define LL long long
#define ull unsigned long long
using namespace std;
int n,f;
void dfs(ull x,int n,int step){
if(f||step>=19)
return;
if(x%n==0){
printf("%I64u\n",x);
f=1;
return;
}
dfs(x*10,n,step+1);
dfs(x*10+1,n,step+1);
}
int main(){
while(scanf("%d",&n)&&n){
f=0;
dfs(1,n,0);
}
return 0;
}