给定一个数n,让你找出一个只由0,1组成十进制数m,要求这个正整数可以被n整除
输入格式
输入一个整数n(1<=n<=200).
输出格式
对于输入整数n的每一个值,输出m的相应值,保证有一个数字长度小于19位的数字。如果有一个给定值n有多个解,其中任何一个解都是可以接受的。
样例输入
2
样例输出
10
#include<iostream>
using namespace std;
int n;
bool f;
void dfs(long long x,int cnt){//x表示当前数是多少,cen表示第几个数
if(cnt>=19){//递归出口1,字符长度超过19
return;
}
if(f){//最优性剪枝,当找到一组可行解时就不在搜索
return;
}
if(x%n==0){//递归出口2,找到可行解
f=true;
cout<<x<<endl;
return;
}
dfs(x*10+0,cnt+1);//意思是在一个数后面添加一个0
dfs(x*10+1,cnt+1);//意思是在一个数后面添加一个1
}
int main(){
cin>>n;
dfs(1,0);
return 0;
}