码迷,mamicode.com
首页 > 其他好文 > 详细

poj1426(暴力dfs)

时间:2019-10-20 16:13:07      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:scan   bsp   print   can   代码   c代码   poj   http   printf   

题目链接:https://vjudge.net/problem/POJ-1426

题意:给出n(1<=n<=200),求出全部由01组成的能整除n的正整数。

思路:此题在unsigned long long以内就可以找到满足条件的数,因此限制递归深度为20,然后枚举每一位两种可能即可。

AC代码:

#include<cstdio>
#include<algorithm>
using namespace std;

int n,cnt,flag,res,ans[105];

void dfs(int pos,int pre){
    if(pos>20) return;
    if(!pre){
        flag=1;
        res=pos;
        return;
    }
    ans[pos]=0;
    dfs(pos+1,(pre*10+0)%n);
    if(flag) return;
    ans[pos]=1;
    dfs(pos+1,(pre*10+1)%n);
}

int main(){
    while(~scanf("%d",&n),n){
        flag=0;
        ans[1]=1;
        dfs(2,1%n);
        for(int i=1;i<res;++i)
            printf("%d",ans[i]);
        printf("\n");
    }
    return 0;
}

 

poj1426(暴力dfs)

标签:scan   bsp   print   can   代码   c代码   poj   http   printf   

原文地址:https://www.cnblogs.com/FrankChen831X/p/11707648.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!