找数字 【 DFS 】

题目:
给一个数 nn,让你找出一个只由 0,1 组成的十进制数 m,要求这个正整数 m 可以被 n 整除。

输入格式:
输入一个整数 n (1≤n<200)。
输出格式:
对于输入整数 n的每一个值,输出 m 的相应值,保证有一个数字长度小于 19 位的数字.如果有一个给定值 n 有多个解,其中任何一个都是可以接受的.
本题答案不唯一,符合要求的答案均正确
样例输入
2
样例输出
10

#include<bits/stdc++.h>
using namespace std;
int flag = 0;
void dfs(int n, long long  x){
  if(flag) return ;
  if(x > 1e18) return ;
  if(x % n == 0){
    printf("%lld\n",x);
    flag = 1;
    return ;
  }

    dfs(n, x * 10);
  	dfs(n,x * 10 + 1);
  
}

int main()
{
  
  int n;
  scanf("%d",&n);
  dfs(n,1);
  return 0;
}

猜你喜欢

转载自blog.csdn.net/Mercury_Lc/article/details/105741054
dfs