POJ1426-Find The Multiple(DFS)

给出一个整数n,(1 <= n <= 200)。求出任意一个它的倍数m,要求m必须只由十进制的'0'或'1'组成。

#include <iostream>

using namespace std;

int N,flag;

void DFS(int m,long long n)
{
     if(m==19) return;
     if(flag) return;
     if(n%N==0)
     {
         flag=1;
         cout<<n<<endl;
         return;

     }
     DFS(m+1,n*10);
     DFS(m+1,n*10+1);
}

int main()
{
    ios::sync_with_stdio(false);
    while(cin>>N&&N!=0)
    {
        flag=0;
        DFS(0,1);
    }
    return 0;
}

 

posted @ 2018-06-12 17:21  Somnus、M  阅读(79)  评论(0编辑  收藏  举报