蓝桥杯python基础算法(2-2)——基础算法(D)——进制转换*

ops/2025/2/7 5:24:34/

目录

五、进制转换

十进制转任意进制,任意进制转十进制

例题 P1230 进制转换

作业 P2095 进制转化

作业 P2489 进制


五、进制转换

十进制转任意进制,任意进制转十进制


int_to_char = "0123456789ABCDEF"
def Ten_to_K(k, x):answer = ""while x != 0:# int_to_char[x % k] 用于获取余数对应的字符answer += int_to_char[x % k]# 将 x 整除 k,更新 x 的值x //= k# 由于是从低位到高位构建 answer,所以需要将其反转后返回return answer[::-1]char_to_int = {}
# 使用 enumerate 遍历 int_to_char 字符串
# idx 是字符的索引,chr 是字符串中的每个字符
for idx, chr in enumerate(int_to_char):# 将每个字符作为键,其索引作为值,添加到 char_to_int 字典中char_to_int[chr] = idx
def K_to_Ten(k, x):answer = 0# 将输入的数字符串 x 反转,以便从低位到高位处理x = x[::-1]for i in range(len(x)):# 将每一位字符对应的数值乘以 k 的 i 次幂,并累加到 answer 中# char_to_int[x[i]] 获取字符对应的数值answer = answer + char_to_int[x[i]] * k ** ireturn answer

例题 P1230 进制转换


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

输入描述

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

每个测试用例包含两行,第一行包含两个整数 N,M。

第二行输入一个字符串 S,表示 N 进制数。

数据范围保证:2≤N,M≤16,若 N≥10,则用 A∼F 表示字码 10∼15。保证 S 对应的十进制数的位数不超过 10。

输出描述

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


int_to_char="0123456789ABCDEF"
def Ten_to_K(k,x):answer=""while x !=0:answer+=int_to_char[x%k]x//=kreturn answer[::-1]char_to_int={}
for idx,chr in enumerate(int_to_char):char_to_int[chr]=idx
def K_to_Ten(k,x):answer=0x=x[::-1]for i in range(len(x)):answer=answer+char_to_int[x[i]]*k**ireturn answerT=int(input())
for _ in range(T):N,M=map(int,input().strip().split())S=input().strip()# N转换为10进制,10进制转化为M进制y=K_to_Ten(N,S)z=Ten_to_K(M,y)print(z)

作业 P2095 进制转化


本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

九进制正整数 (2022)9​ 转换成十进制等于多少?


print(1478)
int_to_char="0123456789ABCDEF"
char_to_int={}
for idx,chr in enumerate(int_to_char):char_to_int[chr]=idx# 请在此输入您的代码
def K_to_Ten(k,x):answer=0x=x[::-1]for i in range(len(x)):answer=answer+char_to_int[x[i]]*k**ireturn answerprint(K_to_Ten(9,"2022"))

作业 P2489 进制


请问十六进制数 2021ABCD 对应的十进制是多少?

答案提交

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。


print(539077581)
int_to_char="0123456789ABCDEF"
char_to_int={}
for idn,chr in enumerate(int_to_char):char_to_int[chr]=idn
def K_to_Ten(k,x):answer=0x=x[::-1]for i in range(len(x)):answer=answer+char_to_int[x[i]]*k**ireturn answer
print(K_to_Ten(16,"2021ABCD"))


http://www.ppmy.cn/ops/156351.html

相关文章

神经网络|(七)概率论基础知识-贝叶斯公式

【1】引言 前序我们已经了解了一些基础知识。 古典概型:有限个元素参与抽样,每个元素被抽样的概率相等。 条件概率:在某条件已经达成的前提下,新事件发生的概率。实际计算的时候,应注意区分,如果是计算综…

第35章 星骗计划的阴影

清晨,阳光透过窗帘缝隙,轻柔地洒落在东方艾艾的办公桌上。他揉了揉惺忪的睡眼,昨晚加班至深夜的疲惫仍未消散。在航天锐创所,刚结束一轮紧张培训,他便马不停蹄地投身于 “星渊计划:航天智擎开发项目” 的筹…

deepseek本地部署

DeepSeek本地部署详细指南 DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,这里记录自己DeepSeek本地部署流程。 主机环境 cpu:amd 7500Fgpu:406…

全面掌握C#的JObject类:C#开发之JSON数据解析与操作实战指南

在C#中,处理JSON数据是日常开发中常见的任务之一。JObject类是 Newtonsoft.Json(也称为Json.NET)库的一部分,它提供了一个灵活且强大的方式来解析、查询和操作JSON数据。本文将深入探讨JObject类的各种用法,包括基本操…

PostgreSQL 数据库备份与还原

为了安全与数据共享等,创建好的数据库有时候需要备份操作和还原操作。数据库的备份与还原主要是三个命令:pg_dump、pg_dumpall 和 pg_restore 。 其中pg_dump用于备份单个数据库,它支持多种备份格式(SQL、自定义等)&a…

c++:list

1.list的使用 1.1构造 1.2迭代器遍历 (1)迭代器是算法和容器链接起来的桥梁 容器就是链表,顺序表等数据结构,他们有各自的特点,所以底层结构是不同的。在不用迭代器的前提下,如果我们的算法要作用在容器上…

正则表达式超详细讲解

欢迎并且感谢大家指出我的问题,由于本人水平有限,有些内容写的不是很全面,只是把比较实用的东西给写下来,还有对一些常用的正则表达式进行收集整理,如果有写的不对的地方,还希望大家多多指教!谢…

STM32-启动文件

STM32-启动文件 简介启动文件栈空间开辟堆空间开辟中断向量表定义复位程序 系统启动流程 简介 STM32 启动文件由 ST 官方提供,由汇编编写,是系统上电复位后执行的第一个程序。 启动文件主要做的工作。 1.初始化堆栈指针 SP _initial_sp 2.初始化程序计…