1426POJ

来源:互联网 发布:java如何一行输出 编辑:程序博客网 时间:2024/05/18 02:01

给你一个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 | 1using 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;}

0 0
原创粉丝点击