python 基础知识点(蓝桥杯python科目个人复习计划25)

今日复习内容:基础算法中的进制转换

1.任意进制转十进制

(1) 基数:表示奇数数字符号的个数

  • 10进制:0--9,基数为10
  • 16进制:0--9,A--F,基数为16

(2) 权:每位表示的数值

  • 例如:123,1表示1个100,2表示2个10,3表示3个1

 

(3) 按权展开法(这个就是我们高中学过的进制转换,我去word上编辑出来)

具体操作如上图所示

按权展开法:各位数字与它对应的权相乘,再把积相加,得到的结果就是该数字转换为10进制后的形式。

 (4)我来举个例子

  • 将下列整数转换为10进制

 

将其转化为代码得: 

# 把k进制的数字转换为10进制
# 输入k:int  x:str
# 输出ans ;int
int_to_char = '0123456789ABCDEF'
char_to_int = {}
for idx,chr in enumerate(int_to_char):char_to_int[chr] = idx
print(char_to_int)def K_to_Ten(k,x):ans = 0x = x[::-1]for i in range(len(x)):ans = ans + char_to_int[x[i]] * k ** ireturn ansk = 2
x = '1101101'
print(K_to_Ten(k,x))

运行结果:

有不理解的地方可以提出来 

但是,我这种做法 不太对,因为有一行代码涉及次方,可能会导致运行超时,所以,我来改进一下。

# 把k进制的数字转换为10进制
# 输入k:int  x:str
# 输出ans ;int
int_to_char = '0123456789ABCDEF'
char_to_int = {}
for idx,chr in enumerate(int_to_char):char_to_int[chr] = idx
print(char_to_int)def K_to_Ten(k,x):ans = 0for char in x:ans = ans * k + char_to_int[char]return ansk = 2
x = '1101101'
print(K_to_Ten(k,x))

 这样就不会出现运行超时的问题了,这里用的是递归思想。

2.十进制转任意进制

用的是除k取余法,也就是我们高中学过的辗转相除法,用数字除以k不断取余,最后逆序输出。

相应的,当然也有乘k取整法。

乘k取整法:十进制小数转化为k进制数,成衣k取整,顺序输出。

将其转换成代码得:

  

# 把k进制的数字转换为10进制
# 输入k:int  x:str
# 输出ans ;int
int_to_char = '0123456789ABCDEF'
char_to_int = {}
for idx,chr in enumerate(int_to_char):char_to_int[chr] = idx
print(char_to_int)def K_to_Ten(k,x):ans = 0for char in x:ans = ans * k + char_to_int[char]return ans# 将10进制数字转化为k进制
def Ten_to_K(k,x):ans = ''while x != 0:ans += int_to_char[x % k]x //= kreturn ans[::-1]k = 2
x = 89
print(Ten_to_K(k,x))

运行结果:

 

3.例题

进制转换

题目描述:

给定一个N进制数S,请你将它转化成M进制。

输入描述:

第一行为一个整数T,表示测试数据数量。(1 <= T<= 10^5) 

每个测试用例包含两行,第一行包含两个整数N,M,第二行输入一个字符串S,表示N进制数。

数据范围保证:2 <= N,M <= 16,若N >= 0,则用A--F表示10--15,保证S对应的十进制数的位数不超过10.

输出描述:

输出共T,每行表示一组数据的答案。

参考答案:

# 把k进制的数字转换为10进制
# 输入k:int  x:str
# 输出ans ;int
int_to_char = '0123456789ABCDEF'
char_to_int = {}
for idx,chr in enumerate(int_to_char):char_to_int[chr] = idx
# print(char_to_int)def K_to_Ten(k,x):ans = 0for char in x:ans = ans * k + char_to_int[char]return ans# 将10进制数字转化为k进制
def Ten_to_K(k,x):ans = ''while x != 0:ans += int_to_char[x % k]x //= kreturn ans[::-1]# k = 2
# x = 89
# print(Ten_to_K(k,x))
# 任意的进制转换
T = int(input())
for _ in range(T):N,M = map(int,input().split())x = input()# N进制的x转换成M进制# 以10进制为桥梁,先把N进制的x转换成10进制的y,# 再把10进制的y转换成M进制的z,z就是最终答案y = K_to_Ten(N,x)z = Ten_to_K(M,y)print(z)

运行结果:

 

然后我把代码进行了优化,不会出现运行超时的情况。

OK,这篇就写到这里,以后我会按照我自己的习惯,一篇尽量只写一个知识点,当然得看情况。

下一篇继续! 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/651166.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机找不到ucrtbased.dll无法运行程序,分享5种有效的解决方法

当计算机系统在运行过程中无法找到ucrtbased.dll这个特定的动态链接库文件时&#xff0c;可能会引发一系列的问题和故障现象。ucrtbased.dll是Windows操作系统中一个至关重要的组件&#xff0c;它包含了C运行时库的核心函数&#xff0c;对于许多应用程序特别是基于Microsoft Vi…

【论文+App试玩+图像到视频】2311.Animate-anyone:上传1张图片为任何人制作动画(用于角色动画的一致且可控的图像到视频合成)(暂未开源)

项目主页&#xff1a;https://humanaigc.github.io/animate-anyone/ 论文: Animate Anyone: Consistent and Controllable Image-to-Video Synthesis for Character Animation 摩尔线程复现代码&#xff1a;https://github.com/MooreThreads/Moore-AnimateAnyone 摩尔windows一…

第9章 多线程

第9章 多线程 学习目标 了解进程和线程的区别 能够理解并发与并行的区别 能够使用继承类的方式创建多线程 能够使用实现接口的方式创建多线程 能够说出实现接口方式的好处 能够解释安全问题的出现的原因 能够使用同步代码块解决线程安全问题 能够使用同步方法解决线程安全问题…

多维时序 | Matlab实现WOA-TCN-Multihead-Attention鲸鱼算法优化时间卷积网络结合多头注意力机制多变量时间序列预测

多维时序 | Matlab实现WOA-TCN-Multihead-Attention鲸鱼算法优化时间卷积网络结合多头注意力机制多变量时间序列预测 目录 多维时序 | Matlab实现WOA-TCN-Multihead-Attention鲸鱼算法优化时间卷积网络结合多头注意力机制多变量时间序列预测效果一览基本介绍程序设计参考资料 效…

C++核心编程:C++ 中的引用 笔记

2.引用 2.1 引用的基本使用 - 作用&#xff1a;给变量起别名 - 语法&#xff1a;数据类型 &别名 原名 #include<iostream> using namespace std; int main() {// 引用基本语法// 数据类型 &别名 原名int a 10;// 创建引用int &ref_a a;cout<<&qu…

2024017期传足14场胜负前瞻

2024017期赛事由亚洲杯2场、英总杯2场、德甲2场、意甲4场、西甲4场组成。售止时间为1月28日&#xff08;周日&#xff09;19点00分&#xff0c;敬请留意&#xff1a; 本期深盘场次同样适中&#xff0c;1.5以下赔率3场&#xff0c;1.5-2.0赔率6场&#xff0c;其他场次基本皆是平…

【鸿蒙】大模型对话应用(一):大模型接口对接与调试

Demo介绍 本demo对接阿里云和百度的大模型API&#xff0c;实现一个简单的对话应用。 DecEco Studio版本&#xff1a;DevEco Studio 3.1.1 Release HarmonyOS API版本&#xff1a;API9 关键点&#xff1a;ArkTS、ArkUI、UIAbility、网络http请求、列表布局 官方接口文档 此…

vue3使用vue-diff插件实现文本对比

前面介绍过vue3通过monaco-editor实现文本对比功能 但因为业务需要自定义左右两侧文本的底色及高亮颜色&#xff0c;考虑换一个插件&#xff1a;vue-diff 1、下载插件&#xff1a; npm i vue-diff1.2.4 2、main.js中引入并注册插件&#xff1a; // Diff对比 import VueDiff f…

ZYNQ AC7020C的“点LED”实验

一、创建 Vivado 工程 1、启动 Vivado 2、在 Vivado 开发环境里点击“Create New Project”&#xff0c;创建一个新的工程 3、弹出一个建立新工程的向导&#xff0c;点击“Next” 4、在弹出的对话框中输入工程名和工程存放的目录。需要注意工程路径“Project location”不能有…

Zookeeper3.5.7基础学习

文章目录 一、Zookeeper入门1、概述2、特点3、数据结构4、应用场景 二、Zookeeper 安装部署1、本地模式安装1.1 基础操作1.2 配置参数解读 2、集群部署2.1 集群安装2.2 选举机制(面试重点)2.3 ZK 集群启动停止脚本 三、ZK客户端相关操作1、客户端命令行操作1.1 命令行语法1.2 z…

【第七在线】数字化转型:智能商品计划管理的核心要素

随着科技的快速发展&#xff0c;数字化转型已经成为企业适应市场变化、提高运营效率的必由之路。尤其在服装行业&#xff0c;快速的市场反应和精准的供应链管理显得尤为重要。其中&#xff0c;智能商品计划管理作为数字化转型的核心要素&#xff0c;正在重塑整个行业的竞争格局…

【RH850U2A芯片】Reset Vector和Interrupt Vector介绍

目录 前言 正文 1. 什么是Reset Vector 1.1 S32K144芯片的Reset Vector 1.2 RH850芯片的Reset Vector 2. 什么是Interrupt Vector 2.1 S32K144芯片的Interrupt Vector 2.2 RH850芯片的Interrupt Vector 3. Reset Vector等价于Interrupt Vector吗 4. 总结 前言 最近在…

$monitor和$strobe都看的是啥

注&#xff1a;本文来自硅芯思见 在编写测试平时&#xff0c;经常会用到$monitor和$strobe监测某些信号&#xff0c;并且使用格式上与$display比较类似&#xff0c;但是它们之间还是存在差异的&#xff0c;它们在当前仿真时间槽&#xff08;time-slot&#xff09;中被执行的区间…

常见电源电路(LDO、非隔离拓扑和隔离拓扑结构)

一、常见电路元件和符号 二、DC-DC转换器 DC-DC转换器&#xff1a;即直流-直流转换器&#xff0c;分为三类&#xff1a;①线性调节器&#xff1b;②电容性开关解调器&#xff1b;③电感性开关调节器&#xff1b; 2.1线性稳压器&#xff08;LDO&#xff09; 2.1.1 NMOS LDO…

如何将前后端分离(vue2+SpringBoot)项目部署到腾讯云服务器

如何将前后端分离&#xff08;vue2SpringBoot&#xff09;项目部署到腾讯云服务器 目录 如何将前后端分离&#xff08;vue2SpringBoot&#xff09;项目部署到腾讯云服务器 1、在选中目录地下新建2个文件夹 2、将打包好的前端项目和后端jar包上传到相应的目录下 3、将路径切…

Gin 应用多实例部署session问题、session参数与刷新

文章目录 一、Gin Session 存储的实现方案二、memstore&#xff1a;基于内存的实现2.1 基本使用2.2 关键参数 三、使用redis&#xff1a;多实例部署3.1 使用redis优势3.2 基本使用 四、信息安全的三个核心概念五、Gin Session 参数5.1 参数介绍 六、Session 自动刷新 一、Gin S…

语图奇缘:林浩然与杨凌芸的哲学漫画大冒险

语图奇缘&#xff1a;林浩然与杨凌芸的哲学漫画大冒险 Language Odyssey: The Philosophical Comic Adventure of Lin Haoran and Yang Lingyun 在一个充满逻辑谜题和言语陷阱的城市——逻言市&#xff0c;住着两位热衷于探索语言奥秘的年轻人&#xff0c;林浩然和杨凌芸。林浩…

一篇文章带你了解C++中隐含的this指针

文章目录 一、this指针的引出二、this指针的特性【面试题】 一、this指针的引出 我们先来定义一个日期类Date&#xff0c;下面这段代码执行的结果是什么呢&#xff1f; class Date { public:void Init(int year, int month, int day){_year year;_month month;_day day;}v…

2024新版68套Axure RP大数据可视化大屏模板及通用组件+PSD源文件

Axure RP数据可视化大屏模板及通用组件库2024新版重新制作了这套新的数据可视化大屏模板及通用组件库V2版。新版本相比于V1版内容更加丰富和全面&#xff0c;但依然秉承“敏捷易用”的制作理念&#xff0c;这套作品也同样延续着我们对细节的完美追求&#xff0c;整个设计制作过…

【PythonRS】Rasterio库安装+基础函数使用教程

Rasterio是一个Python库&#xff0c;专门用于栅格数据的读写操作。它支持多种栅格数据格式&#xff0c;如GeoTIFF、ENVI和HDF5&#xff0c;为处理和分析栅格数据提供了强大的工具。RasterIO适用于各种栅格数据应用&#xff0c;如卫星遥感、地图制作等。通过RasterIO&#xff0c…