1 solutions
-
0
Guest MOD
-
0
从最高位填写数字,如果填写到目前为止不满足题意退出递归,否则直到填写到对应的 位,判断是否在给定的区间 里面,是则记录答案
#include <iostream> #include <set> #define int long long using namespace std; int a, b, n; set<int> se; void dfs(int x, int len) { if (x % len != 0) return; if (len == n) { if (x <= b && x >= a) { se.insert(x); } return; } for (int i = 0; i < 10; ++i) { dfs(x * 10 + i, len + 1); } } signed main() { cin >> n >> a >> b; for (int i = 1; i <= 9; i++) dfs(i, 1); for (const auto &x : se) { cout << x << '\n'; } }
- 1
Information
- ID
- 1460
- Time
- 2000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 57
- Accepted
- 22
- Uploaded By