题目大意:找到一个数的倍数并且这个数只能由1和0组成
思路:dfs递归查找,两种dfs的走法
#include<stdio.h>
int flag=0;
int n;
void dfs(int i,unsigned long long j);
int main(void)
{
while(scanf("%d",&n),n){
flag=0;
dfs(0,1);
}
return 0;
}
void dfs(int i,unsigned long long j){//使用i防止一条路走到黑 long long 最大有19位
if(flag||i==19)//判断位数是否达到最大或者是否已经找到
return ;
if(j%n==0){//判断这个数是不是符合条件
printf("%lld\n",j);
flag=1;
return ;
}
dfs(i+1,j*10);//两种走法
dfs(i+1,j*10+1);
}
本文介绍了一个通过DFS深度优先搜索算法来寻找特定整数的倍数的问题,该倍数仅由1和0组成。文章提供了一段C语言实现的代码示例,并解释了递归过程中的两种走法。
347

被折叠的 条评论
为什么被折叠?



