[GESP202309 四級] 2023年9月GESP C++四級上機題題解,附帶講解視頻!

本文為2023年9月GESP C++四級的上機題目的詳細題解!覺得寫的不錯或者有幫助可以點個贊啦。

目錄

題目一講解視頻:

題目二講解視頻:

題目一:進制轉換

解題思路:

代碼(C++):

題目二:變長編碼

解題思路:

代碼(C++):


題目一講解視頻:

2023年9月GESP C++四級上機題一


題目二講解視頻:

2023年9月GESP C++四級上機題二


題目一:進制轉換

B3869 [GESP202309 四級] 進制轉換 - 洛谷

解題思路:

我們首先要理解進制的本質。

一個K進制數字,可以理解成逢K進一,也就是每滿K的時候往前進一位。

拿最熟悉的十進制數字舉例子,個位每滿10,十位數字就加一。

所以13可以表示為1?* 10 + 3, 34可以表示成3 * 10 + 4。

十位的數字要滿10的時候,就進一位, 百位數字加1,也就是百位數字x就相當于已經有x * 10 * 10了。

那么比如說,十進制的345也就可以表示成3 * 10 * 10 + 4 * 10 + 5。

這個同樣應用于任意進制的數字,所以對于一個K進制數字num

求它實際有多大,我們可以用它的第一位乘K的0次,第二位乘K的一次,第三位乘K的二次....最后加上總和,就是這個數字的大小。

這里就可以寫一個模擬的思路。

代碼(C++):

#include <bits/stdc++.h>
//https://blog.csdn.net/2401_83669813 csdn: @立志成為算法講師//0-9, 直接轉換成數字
//A-F, 跟'A'的差 + 10
int to10(char c) {if (c <= '9') {return c - '0';}return c - 'A' + 10;
}void solve() {int k;std::string numK;std::cin >> k >> numK;long long ans = 0;int p = 0;for (int i = numK.size() - 1; i >= 0; i--) {int num = to10(numK[i]);ans += (long long)num * std::pow(k, p);p++;}std::cout << ans << "\n";
}int main() {/*我們先要理解進制的本質一個K進制的數字,表示的是逢K進一十進制:0..9 10..19..八進制:0..7 10..17十進制23 = 2 * 10 + 3八進制23 = 2 * 8 + 3十進制的123 = 1 * 10 * 10 + 2 * 10 + 3八進制的123 = 1 * (8 ^ 2) + 2 * (8 ^ 1) + 3 * (8 ^ 0)*/int N;std::cin >> N;while (N--) {solve();}
}

題目二:變長編碼

B3870 [GESP202309 四級] 變長編碼 - 洛谷

解題思路:

首先來理解左移和右移操作。

對于一個數字n,n >> x,表示的是在n的二進制上整體向左移動,小于0的部分剔除掉。

比如101011 >> 3? => 101 (011),011小于0,直接剔除掉即可。那么最終結果是101。

在十進制上,n >> x可以看作n / (2 ^ x)。

反之就是往左移動。(視頻里面會有詳細的講解)

然后是與運算和或運算。

網址:Binary Fundamentals

如果有很多位的話,就是按照每一位進行分別進行位運算。

比如 3?& 6可以看成是:

0 1 1

1 1 0

變成 0 1 0

這個題目對一個數字二進制下,分成每組7位,那么我們可以與運算獲取這個數字的后7位,然后通過右移運算,讓這個數字的二進制每次減少7位。

對最高位進行操作的話,可以用或運算

具體可以看代碼和視頻解析!

代碼(C++):

#include <bits/stdc++.h>
//https://blog.csdn.net/2401_83669813 csdn: @立志成為算法講師char toChar(int num) {if (num < 10) {return num + '0';}return num - 10 + 'A';
}std::string to16(int num) {std::string res(2, '0');res[0] = toChar(num >> 4);res[1] = toChar(num & 15);return res;
}int main() {/*左移,右移運算n >> x與運算和或運算&,|1.不斷將數字右移7位,通過與運算獲取最后的7位數字2.對于在最高位添加1,可以通過或運算操作*/long long n;std::cin >> n;if (n == 0) {std::cout << "00";return 0;}//1.while (n > 0) {int num = n & 0x7F;//0111 1111n >>= 7;//2.if (n > 0) {//1000 0000num |= 0x80;}std::cout << to16(num) << " ";}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/92359.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/92359.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/92359.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【AI編程工具IDE/CLI/插件專欄】-國外IDE與Cursor能力對比

AI編程專欄(二) - Cursor 深度使用指南 Cursor 深度使用指南(二) - 新能力使用教程 從Trae 2.0與CodeBuddy IDE發布&#xff0c;談大廠布局IDE 如何選擇AI IDE&#xff1f;對比Cursor分析功能差異 AI編程工具IDE/CLI/插件專欄-熱門AI編程CLI初識與IDE對 前面文章介紹過了國…

word2vector細致分解(CBOW, SKIP_GRAM, 層次soft Max, 負采樣)

1 前世今生&#xff1a;NGRAM NGRAM&#xff1a;將詞當成一個離散的單元&#xff08;因此存在一定的局限性&#xff0c;沒有考慮到詞與詞之間的關系&#xff09; neural network language model&#xff1a;只能處理定長序列&#xff0c;訓練慢。使用RNN之后有所改善 2 兩種訓…

Elasticsearch向量庫

在Elasticsearch&#xff08;ES&#xff09;最新版本&#xff08;目前8.x系列&#xff09;中&#xff0c;無需額外的“embedding插件”&#xff0c;因為ES從7.14版本開始就原生支持向量數據類型&#xff08;dense_vector&#xff09; 和向量搜索能力&#xff0c;可直接作為向量…

嵌入式學習的第四十四天-ARM

一、ARM內核基礎知識1.ALU算術邏輯單元&#xff1b;完成運算的電路2.通用寄存器&#xff1a;R0~R15R13&#xff08;SP&#xff09;&#xff1a;棧指針寄存器&#xff1a;指向棧的指針&#xff08;指向正確的位置&#xff09;&#xff0c;為了保護現場 R14&#xff08;LR…

QML開發:QML中的基本元素

文章目錄一、概述二、常用基本元素2.1 基礎視覺元素&#xff08;常用于布局和顯示&#xff09;2.1.1 元素 Item 的介紹和使用2.1.2 元素 Rectangle 的介紹和使用2.1.3 元素 Image 的介紹和使用2.1.4 元素 Text 的介紹和使用2.2 交互元素&#xff08;用于接收用戶操作&#xff0…

Spring AI 項目實戰(二十二):Spring Boot + AI +DeepSeek實現智能合同數據問答助手?(附完整源碼)

系列文章 序號 文章名稱 1 Spring AI 項目實戰(一):Spring AI 核心模塊入門 2 Spring AI 項目實戰(二):Spring Boot + AI + DeepSeek 深度實戰(附完整源碼) 3 Spring AI 項目實戰(三):Spring Boot + AI + DeepSeek 打造智能客服系統(附完整源碼) 4

從 0 到 1 創建 InfluxDB 3 表:標簽、字段、命名規范一篇講透

前言 在使用 InfluxDB 3 存儲時序數據時,表的設計堪比蓋房子打地基,地基打歪,數據“塌方”指日可待。InfluxDB 雖然不是傳統意義上的關系型數據庫,但它有自己的一套“審美”:標簽(Tags)和字段(Fields)是它的雙核心,誰先誰后,關系重大,順序寫錯,查詢性能立馬打折。…

[sqlserver] 分析SQL Server中執行效率較低的SQL語句

查詢性能分析較低的SQL語句 -- 查詢性能分析 SELECT TOP 50qs.creation_time AS [編譯時間],qs.last_execution_time AS [最后執行時間],qs.execution_count AS [執行次數],qs.total_worker_time/1000 AS [CPU總時間(ms)],qs.total_elapsed_time/1000 AS [總耗時(ms)],(qs.tota…

SmartX 用戶建云實踐|寶信軟件:搭建“雙架構”私有云平臺,靈活滿足多種業務需求

上海寶信軟件股份有限公司&#xff08;以下簡稱寶信軟件&#xff09;系中國寶武實際控制、寶鋼股份控股的上市軟件企業&#xff0c;是中國領先的工業軟件行業應用解決方案和服務提供商&#xff0c;為寶武集團提供整體 IT 基礎架構解決方案與服務。為統一管理寶武集團旗下分散在…

應用科普 | 漫談6G通信的未來

【摘要前言】2019年推出的5G無線通信將移動設備的性能提升到了一個新的水平。首批應用利用5G提供移動寬帶&#xff0c;使消費者能夠以遠超以往的速度進行流媒體傳輸、游戲和連接。隨著技術的成熟&#xff0c;它已成為物聯網的關鍵組成部分&#xff0c;將機器匯集到一個全球網絡…

從零開始用 Eclipse 寫第一個 Java 程序:HelloWorld 全流程 + 避坑指南

對于 Java 初學者來說&#xff0c;第一次用 Eclipse 寫程序往往會手足無措 —— 找不到新建項目的入口、不知道包和類該怎么命名、運行時控制臺突然消失…… 別慌&#xff01;本文以最經典的 “HelloWorld” 為例&#xff0c;手把手帶你走完從 Eclipse 項目創建到程序運行的完整…

NVIDIA Isaac GR00T N1.5 源碼剖析與復現

? 0. 前言 2025.6.11 NVIDIA Isaac GR00T N1 進化&#xff0c;英偉達發布了NVIDIA Isaac GR00T N1.5模型&#xff0c;效果比原先提高了不少&#xff0c;故來復現一下&#xff0c;看看能否應用于我的項目中&#xff1a; 代碼頁 項目頁 模型頁 ? 以下是使用 GR00T N1.5 的一般…

手把手教你馴服Apache IoTDB時序數據庫,開啟時序數據管理新征程!

手把手教你馴服Apache IoTDB&#xff0c;開啟時序數據管理新征程&#xff01; 本文是一篇幽默風趣的 Apache IoTDB 時序數據庫安裝使用教程。從 “這東西能不能吃” 的靈魂拷問切入&#xff0c;先科普 IoTDB 的 “真實身份”—— 一款專為時序數據設計的數據庫利器&#xff0c;…

劇本殺小程序系統開發:開啟沉浸式推理社交新紀元

在數字化浪潮席卷的當下&#xff0c;傳統娛樂方式正經歷著前所未有的變革&#xff0c;劇本殺這一融合了推理、角色扮演與社交互動的熱門游戲&#xff0c;也搭上了科技的快車&#xff0c;劇本殺小程序系統開發應運而生&#xff0c;為玩家們開啟了一扇通往沉浸式推理社交新世界的…

Ubuntu系統VScode實現opencv(c++)視頻的處理與保存

通過OpenCV等計算機視覺工具&#xff0c;開發者可以像處理靜態圖像一樣對視頻流逐幀分析&#xff1a;從簡單的裁剪、旋轉、色彩校正&#xff0c;到復雜的穩像、目標跟蹤、超分辨率重建。而如何將處理后的高幀率、高動態范圍數據高效壓縮并封裝為通用格式&#xff08;如MP4、AVI…

三坐標測量技術解析:從基礎原理到斜孔測量難點突破

基礎原理 三坐標測量儀&#xff08;Coordinate Measuring Machine&#xff0c;CMM&#xff09;這種集機械、電子、計算機技術于一體的三維測量設備&#xff0c;其核心技術原理在于&#xff1a;當接觸式或非接觸式測頭接觸感應到工件表面時&#xff0c;測量系統會瞬間記錄三個坐…

【MySQL基礎篇】:MySQL常用內置函數以及實用示例

?感謝您閱讀本篇文章&#xff0c;文章內容是個人學習筆記的整理&#xff0c;如果哪里有誤的話還請您指正噢? ? 個人主頁&#xff1a;余輝zmh–CSDN博客 ? 文章所屬專欄&#xff1a;MySQL篇–CSDN博客 文章目錄內置函數一.日期函數二.字符串函數三.數學函數四.其他函數內置函…

Mirror學習筆記

Mirror官方案例操作 一、導入Mirror 在unity商城訂閱Mirror https://assetstore.unity.com/packages/tools/network/mirror-129321 使用unity創建工程 &#xff08;推薦版本&#xff1a;目前建議使用 Unity 2020 或 2021 LTS 版本&#xff1b;超出這些版本的可能可以運行…

R4周打卡——Pytorch實現 LSTM火災預測

&#x1f368; 本文為&#x1f517;365天深度學習訓練營 中的學習記錄博客&#x1f356; 原作者&#xff1a;K同學啊 一、準備工作 1.1導入數據 1.2數據集可視化 二、構建數據集 2.1數據集預處理 2.2設置X、Y 2.3檢查數據集中有沒有空值 2.4劃分數據集 三、構建模型 3.1定義訓…

【視覺識別】Ubuntu 22.04 上編譯安裝OPENCV 4.12.0 魯班貓V5

系列文章目錄 提示&#xff1a;這里可以添加系列文章的所有文章的目錄&#xff0c;目錄需要自己手動添加 例如&#xff1a;第一章 Python 機器學習入門之pandas的使用 提示&#xff1a;寫完文章后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目…