首页 / 客观题库

80763 - CSP-J2026完善程序1

基础算法

题目(材料题)

(1)(进制减半)

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

输入的第一行依次为$n、m$和A的位数$d$,接下来$d$个数$a_d,a_{d-1},...,a_1$从高位到低位描述各个数位上的数。

数据满足$2≤n,m≤10,1≤d≤18,0≤A<2^{63}$,对于所有$1≤i≤d,0≤a_i < mn$。

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


01 #include <iostream>
02 
03 constexpr int N = 100005; 
04 long long b[N];
05 
06 int main() {
07  long long n, m, d; 
08  std::cin >> n >> m >> d; 
09  int len = 1; 
10  for (int i = 0; i < d; i++) {
11  long long x;
12  std::cin >> x;
13  for (int j = len; j >= 1; j--)
14   b[j] = _____①____;
15  b[0] = _____②____;
16  len++;
17  for (int j = 0; j < len; j++)
18   if (b[j] >= n) {
19    b[j + 1] += _____③____;
20    b[j] = _____④____;
21    if (j + 1 == len) len++;
22   }
23 }
24 while (_____⑤____) len--;
25 for (int i = len - 1; i >= 0; i--)
26  std::cout << b[i] << ' ';
27 return 0;
28 }

 

||
( 单选 )

34.①处应填()

A b[j] * n

B b[j - 1] * n

C b[j] * m

D b[j - 1] * m

( 单选 )


35.②处应填()

A x*n

B x

C 0

D m

( 单选 )

36.③处应填()

A b[j] / m

B b[j] % n

C b[j] % m

D b[j] / n

( 单选 )

37.④处应填()

A b[j] / m

B b[j] % n

C b[j] % m

D b[j] / n

( 单选 )

38.⑤处应填()

A len > 0 && b[len - 1] == 0

B len > 0 && b[0] == 0

C len > 1 && b[len - 1] == 0

D len > 1 && b[0] == 0

意见反馈

    最多上传3张图片,格式为JPG、PNG、JPEG,单张不超过5MB

    注册

    发送验证码

    密码必须包含数字、字母和特殊字符

    找回密码

    发送验证码

    密码必须包含数字、字母和特殊字符

    运行 ID:67149

    • 测试点1:Accepted
    • 用时:0 ms
    • 内存:288 kb
    • 测试点2:Accepted
    • 用时:0 ms
    • 内存:288 kb
    输入
    203
    输出
    203

    test

    测评信息

    错误.in文件下载

    错误.out文件下载

    运行 ID:67149

    2019-01-24 15:06:36