← 查看本卷题目
组合题5 个小题
已作答 0 / 5

给定 n,mn, m,再给定一个 mnmn 进制下的数 AA,其各个数位上的数按照从高位到低位的顺序给出,请你将其转化为 nn 进制,并同样按照从高位到低位的顺序输出。

输入的第一行依次为 n,mn, m 和 AA 的位数 dd,接下来 dd 个数 ad,ad−1,…,a1a_{d}, a_{d - 1}, … , a_{1} 从高位到低位描述各个数位上的数。

数据满足 2≤n,m≤102 \le n, m \le 10,1≤d≤181 \le d \le 18,0≤A<2630 \le A < 2^{63};对于所有 1≤i≤d1 \le i \le d,0≤ai<mn0 \le a_{i}< mn。

以下程序按“逐位除以 nn”的方法完成进制转换。请补全程序。

#include <iostream> constexpr int N = 100005;long long b[N]; int main() {    long long n, m, d;    std::cin >> n >> m >> d;    int len = 1;    for (int i = 0; i < d; i++) {        long long x;        std::cin >> x;        for (int j = len; j >= 1; j--)            b[j] = /* ① */;        b[0] = /* ② */;        len++;        for (int j = 0; j < len; j++)            if (b[j] >= n) {                b[j + 1] += /* ③ */;                b[j] = /* ④ */;                if (j + 1 == len) len++;            }    }    while (/* ⑤ */) len--;    for (int i = len - 1; i >= 0; i--)        std::cout << b[i] << ' ';    return 0;}
第 35 题单选题原卷 3 分

②处应填( )。

填写答案