第一位是1,之后每一位可以选择0或者1。
因为题目中问的是是否存在,那么我们找到一个解之后就可以停止搜索了。
剪枝操作:
代码:
注意用long long
#include<iostream>
using namespace std;
int n;
bool flag;
void dfs(long long num){
if(flag==true){
return;
}
if(num%n==0){
cout<<num<<endl;
flag=true;
return;
}
dfs(num*10);
dfs(num*10+1);
}
int main(){
flag=false;
cin>>n;
dfs(1);
}