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;
}

猜你喜欢

转载自www.cnblogs.com/Fy1999/p/9174162.html
今日推荐