这道题唯一的坑点就是任意值都可以,你输出来就行,我输出6的倍数与样例的不同,然后交了下试试然后就对了。要好好学英语了!!!
#include
<stdio.h>
int
state
;///定义是否已找到那个倍数
long
long
ans
;
void
dfs
(
long
long
a
,
long
long
b
,
int
k
)
{
if
(
state
)
return
;
if
(
k
==
19
)
return
;
if
(
b
%
a
==
0
&&
state
==
0
)//这个加不加state==0都行 我害怕出意外就加上了
{
state
=
1
;
ans
=
b
;
return
;
}
dfs
(
a
,
10
*
b
,
k
+1
);
dfs
(
a
,
10
*
b
+1
,
k
+1
);
}
int
main
()
{
long
long
n
;
while
(
scanf
(
"%lld"
,&
n
),
n
)
{
state
=
0
;
dfs
(
n
,
1
,
0
);
printf
(
"%lld
\n
"
,
ans
);
}
return
0
;
}