题目链接: [Find The Multiple]
大致题意:
找到一个由0和1组成的可以整除n的数
解题思路:
dfs,只有两个操作,每次y*10或者y*10+1
AC代码:
#include<iostream>
typedef long long ll
;
using namespace std
;
int flag
;
int n
;
void dfs(int x
, ll y
) {
if (flag
|| x
> 19)return;
if (y
% n
== 0) {
flag
= 1;
cout
<< y
<< endl
;
return;
}
dfs(x
+ 1, y
* 10);
dfs(x
+ 1, y
* 10 + 1);
}
int main(void)
{
while (cin
>> n
,n
) {
flag
= 0;
dfs(1, 1);
}
return 0;
}
END
转载请注明原文地址:https://tech.qufami.com/read-27573.html