题意:给定一个n找十进制只包含0 1 并且为n的倍数的数,注意数据范围就可以了,dfs不难理解
代码如下:
#include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> using namespace std; typedef unsigned long long ll; bool vis; void dfs(ll x,int n,int k) { if(vis) return ; if(x%n==0) { vis=true; printf("%llu ",x);//无符号longnlong输出用llu,我用lld答案错误了 return ; } if(k==19) return ; dfs(x*10,n,k+1); dfs(x*10+1,n,k+1); } int main() { int m; while(scanf("%d",&m),m!=0) { vis=false; dfs(1,m,0); } }