题目大意:找出一个10进制数,但是只含1或者0的数能够整除n的数。n最大为200,结果最大为100位以内的数(其实这是骗局)。
思路:先dfs
AC program:
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
int flag;
void dfs(long long t,int n,int k)
{
if(flag ==1)return;
if(t%n==0)
{
cout<<t<<endl;
flag =1;
return ;
}
if(k==18)return ;
dfs(t*10,n,k+1);
dfs(t*10+1,n,k+1);
}
int main()
{
int n;
while(cin>>n,n)
{
flag =0;
dfs(1,n,0);
}
system("pause");
return 0;}