#12099. 珅泽教育CSP-J第一轮模拟考第二十一套 第 34 题

珅泽教育CSP-J第一轮模拟考第二十一套 第 34 题

三、完善程序(单选题,每小题 3 分,共计 30 分)

程序(1)

(优美的进制)给出整数 nn。当且仅当 nnkk 进制下至少有两位,且每一位的数值都不同,我们称 kk 进制是优美的。求对于给定的 nn,有哪些进制是优美的;不存在则输出 -1。试补全程序。

#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100000;
int n;
int vis[MAXN], a[MAXN];
vector<int> ans;
int check(int k) {
    int x = n, top = 0;
    for (int i = 0; i <= k; i++) vis[i] = 0;
    while (①) {
        a[++top] = ②;
        x = ③;
    }
    if (top < 2)
        return 0;
    for (int i = 1; i <= top; i++) {
        if (④)
            return 0;
        vis[a[i]] = 1;
    }
    return 1;
}
int main() {
    cin >> n;
    for (int i = ⑤; i <= n; i++) {
        if (check(i))
            ans.push_back(i);
    }
    if (ans.empty()) {
        cout << -1;
    }
    for (int i = 0; i < ans.size(); i++)
        cout << ans[i] << " ";
    return 0;
}

①处应填( )。

{{ select(1) }}

  • x > 0
  • x > 1
  • x / k > 0
  • x / k > 1