2022年信奥赛C++提高组csp-s初赛真题及答案解析(阅读程序第3题)

# 2022年信奥赛C++提高组csp-s初赛真题及答案解析(阅读程序第3题)

第3题
cpp 复制代码
1  #include <iostream>
2  #include <algorithm>
3  
4  using namespace std;
5  
6  const int MAXL = 1000;
7  
8  int n, k, ans[MAXL];
9  
10 int main(void) 
11 {
12     cin >> n >> k;
13     if (!n) cout << 0 << endl;
14     else 
15     {
16         int m = 0;
17         while (n) 
18         {
19             ans[m++] = (n % (-k) + k) % k;
20             n = (ans[m - 1] - n) / k;
21         }
22         for (int i = m - 1; i >= 0; i--)
23             cout << char(ans[i] >= 10 ?
24                          ans[i] + 'A' - 10 :
25                          ans[i] + '0');
26         cout << endl;
27     }
28     return 0;
29 }

假设输入的 n 在 int 范围内,k 为不小于 2 且不大于 36 的正整数,完成下面的判断题和单选题:

判断题

  1. 该算法的时间复杂度为 O ( l o g ⁡ k n ) O(log⁡_kn) O(log⁡kn)。

    A. 正确 B. 错误

  2. 删除第 23 行的强制类型转换,程序的行为不变。

    A. 正确 B. 错误

  3. 除非输入的 n 为 0,否则程序输出的字符数为 ⌊ l o g ⁡ k ∣ n ∣ ⌋ + 1 ⌊log⁡_k∣n∣⌋+1 ⌊log⁡k∣n∣⌋+1。

    A. 正确 B. 错误

单选题

  1. 当输入为"100 7"时,输出为( )。

    A. 202

    B. 1515

    C. 244

    D. 1754

  2. 当输入为"-255 8"时,输出为( )。

    A. 1400

    B. 1401

    C. 417

    D. 400

  3. 当输入为"1000000 19"时,输出为( )。

    A. BG939

    B. 87GIB

    C. 1CD428

    D. 7CF1B

判断题答案及解析
  1. 正确 (A)
    算法循环次数与 n 的绝对值以 k 为底的对数成正比,时间复杂度为 O(log_k |n|),简写为 O(log_k n)。
  2. 错误 (B)
    删除 char 类型转换后,程序将直接输出整数而非字符,结果格式改变。
  3. 错误 (B)
    负进制转换的位数不一定等于 ⌊log_k|n|⌋+1,例如 n=2, k=2 时输出 "110"(3 位),而公式给出 2 位。
单选题答案及解析
  1. A. 202

    100 的负七进制计算:

    100 ÷ (-7) = -14 余 2 → 低位 2

    -14 ÷ (-7) = 2 余 0 → 0

    2 ÷ (-7) = 0 余 2 → 高位 2

    结果为 "202"。

  2. B. 1401

    -255 的负八进制计算:

    -255 → 余 1,n=32

    32 → 余 0,n=-4

    -4 → 余 4,n=1

    1 → 余 1,n=0

    逆序输出为 "1401"。

  3. B. 87GIB

    1000000 的负十九进制计算:

    余数依次为 11(B)、18(I)、16(G)、7、8,逆序为 "87GIB"。


专栏推荐:信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新)
https://blog.csdn.net/weixin_66461496/category_13125089.html


各种学习资料,助力大家一站式学习和提升!!!

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	cout<<"##########  一站式掌握信奥赛知识!  ##########";
	cout<<"#############  冲刺信奥赛拿奖!  #############";
	cout<<"######  课程购买后永久学习,不受限制!   ######";
	return 0;
}

1、csp信奥赛高频考点知识详解及案例实践:

CSP信奥赛C++动态规划:
https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转

CSP信奥赛C++标准模板库STL:
https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转

信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.csdn.net/weixin_66461496/category_13113932.html

2、csp信奥赛冲刺一等奖有效刷题题解:

CSP信奥赛C++初赛及复赛高频考点真题解析(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转

CSP信奥赛C++一等奖通关刷题题单及题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转

信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新)
https://blog.csdn.net/weixin_66461496/category_13125089.html

3、GESP C++考级真题题解:

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转

GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13117178.html

4、CSP信奥赛C++竞赛拿奖视频课:

https://edu.csdn.net/course/detail/40437 点击跳转

· 文末祝福 ·

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	cout<<"跟着王老师一起学习信奥赛C++";
	cout<<"    成就更好的自己!       ";
	cout<<"  csp信奥赛一等奖属于你!   ";
	return 0;
}
相关推荐
倒头就睡的小比特1 天前
算法竞赛C++常用的STL
c++·算法
weilx12341 天前
C++笔记-文件IO-<fcntl.h>
c++
Smileyqp沛沛1 天前
前端?C++ ?较大差异基础罗列
c++·基础·前端转c++
C语言小火车1 天前
C/C++ 为什么需要编译器?
开发语言·c++
旖旎夜光1 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
吞下星星的少年·-·1 天前
C++ 萌新语法入门篇
c++·算法比赛
霍霍的袁1 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
another heaven1 天前
【算法/C++ MD5算法能否逆解码?原理、C++实现与同类哈希算法对比】
c++·算法·哈希算法
程序猿编码1 天前
告别改源码适配模型:纯 C++ 可配置 LLM 推理引擎,全格式全结构兼容
c++·大模型·llm·推理引擎
此生决int1 天前
深入理解C++系列(20)——C++11(下)
开发语言·c++