题目是说给定一个数 找出由0.1组成的它的倍数 链接点我
就是从一开始搜 每次要么乘以10 要么乘以10加上1 判断能否被整除即可
#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int flag;
void dfs(unsigned __int64 a,int b,int c)
{
if(flag==1) return;
if(a%b==0){
flag=1;
cout<<a<<endl;
return ;
}
if(c==19) return;//事先测一下
dfs(a*10,b,c+1);
dfs(a*10+1,b,c+1);
}
int main()
{
int n;
while(cin>>n&&n)
{
flag=0;
dfs(1,n,0);
}
return 0;
}
就是这么短 就是这么任性