Find The Multiple (dfs深搜)

tech2026-04-01  1

题目链接: [Find The Multiple]


大致题意:

找到一个由0和1组成的可以整除n的数


解题思路:

dfs,只有两个操作,每次y*10或者y*10+1


AC代码:

#include<iostream> typedef long long ll; using namespace std; int flag; int n; void dfs(int x, ll y) { if (flag || x > 19)return; if (y % n == 0) { flag = 1; cout << y << endl; return; } dfs(x + 1, y * 10); dfs(x + 1, y * 10 + 1); } int main(void) { while (cin >> n,n) { flag = 0; dfs(1, 1); } return 0; }

END

最新回复(0)