番号を探す【DFS】

問題:
数値nnが与えられた場合、0,1のみで構成される10進数mを見つけ、この正の整数mをnで割り切れる必要があります。

入力形式:
整数nを入力します(1≤n<200)。
出力形式:
入力整数nの値ごとに、対応するmの値を出力し、19桁未満の長さの数値があることを確認します。指定された値nに対して複数の解がある場合は、いずれか1つでもかまいません。
この質問に対する答えは一意ではなく、要件を満たすすべての答えが正しいです。
サンプル入力
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