给你一个n,求出任意一个倍数m,全部由0或者1组成
http://blog.csdn.net/lyy289065406/article/details/6647917
上面的blog写得非常的详细。
#include<iostream>
#include<cstdio>
#include<string.h>
#include<string>
#include<stack>
#include<set>
#include<algorithm>
#include<cmath>
#include<vector>
#include<map>
#include<queue>
#define ll __int64
#define lll unsigned long long//这个题可以用无符号进制数表示出来,算是一个小漏洞。。实际要用同余定理之类的。。
#define MAX 10000009
#define MAXN 2009
#define eps 1e-8
#define INF 0xfffffff
#define mod 1000000007
#define lson l , m , rt << 1
#define rson m + 1 , r , rt << 1 | 1
using namespace std;
int flag;
void dfs(lll x,int n,int deep)
{
if(flag)
{
return ;
}
if(x%n==0)
{
flag = 1;
printf("%llu\n",x);
return ;
}
if(deep==19)
{
return ;
}
dfs(x*10,n,deep + 1);
dfs(x*10 + 1,n,deep + 1);
}
int main()
{
int n;
while(~scanf("%d",&n)&&n)
{
flag = 0;
dfs(1,n,0);
}
return 0;
}