基础的迭代加深搜索,没想到我的第一次居然献给了它!!!
还是比较简单的啦
#include <cstdio>
#include <vector>
using namespace std;
int n,maxd;
int ans[250];
int dfs(int mod,int step){
//printf("%d %d\n",mod,step);
if(mod == 0) {
for(int i = 0;i<step;i++) printf("%d",ans[i]);
printf("\n");
return 1;
}
if(step > maxd) return 0;
ans[step] = 0;
if(dfs((mod*10)%n,step+1) ) return 1;
ans[step] = 1;
if(dfs((mod*10+1)%n,step+1)) return 1;
return 0;
}
int main(){
while(scanf("%d",&n)&&n){
ans[0] = 1;
for( maxd = 2;;maxd++){
if(dfs(1%n,1)) break;
}
}
return 0;
}