系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子

万万没想到啊,回老家过年断更的几天之后,我会因为无聊在除夕这天做了会儿题,然后写篇题解。

文章目录

  • 【题目】
  • 【我的代码】
  • 【进制转换笔记】
  • 【思考】

【题目】

题目链接:http://lx.lanqiao.cn/problem.page?gpid=T51

【我的代码】

我的思路是:首先十六进制二进制,然后再转八进制,这里直接创建两个字典用来存放数据。代码需要注意二进制是倒着匹配的,而且当不满三个数时需要补0,其他的大家应该都能看明白。

book1 = {'0': '0000','1': '0001','2': '0010','3': '0011','4': '0100','5': '0101','6': '0110','7': '0111','8': '1000','9': '1001','A': '1010','B': '1011','C': '1100','D': '1101','E': '1110','F': '1111'
}
book2 = {'000': '0','001': '1','010': '2','011': '3','100': '4','101': '5','110': '6','111': '7'
}n = int(input())
sn = ['' for _ in range(n)]
for i in range(n):sn[i] = input()for s in sn: #获取二进制形式数num = ''for j in s:num += book1[j]ss = ''t = ''count = 0for k in num[::-1]:t = k+tcount += 1if count == 3: #三个数一组,当三个以后进行转换count = 0ss = book2[t] + sst = ''if count == 1:#不够三个时两种情况,分别前方补0,注意不能写+=t = '00'+tss = book2[t] + ssif count == 2:t = '0' + tss = book2[t]+ssprint(int(ss))

【进制转换笔记】

2进制 8进制 10进制 16进制
2进制 bin(int(n,8)) bin(int(n,10)) bin(int(n,16))
8进制 oct(int(n,2)) oct(int(n,10)) oct(int(n,16))
10进制 int(n,2) int(n,8) int(n,16)
16进制 hex(int(n,2)) hex(int(n,8)) hex(int(n,10))

使用Python内置的函数进行进制转换,大家不难发现都是先转换成十进制再转换成对应的进制,我们简单举一个例子,其他的不再赘述:

# 8进制转16进制:8->10->16
n=input()
print(hex(int(n,8)))输入:1010
输出:0x208

如果不想带前两位的标记,可使用如下方法:

  • 方法一:切片,将得到的结果从第三个字符开始取结果即可
# 10进制转换成2进制
n=int(input())
print(bin(n)[2:]) # 切片操作输入:10
输出:12
  • 方法二:使用format函数进行格式化,format函数自带转换功能,yyds
n=input()
print("{:b}".format(int(n,8)))
# 先将8进制的数转换为10进制,
# 然后在format的槽中添加一个b,等价于实现了bin函数的功能
# 但是此结果是不带有0b前缀的输入:1010
输出:1000001000其他进制:(n右边的是原始进制)
print("{:o}".format(int(n,16))) # 其他类型转换为8进制
print("{:x}".format(int(n,8))) # 其他类型转换为16进制

【思考】

新年快乐!

Python力扣题解系列持续更新,欢迎点赞收藏关注

上一篇:菜菜的刷题日记 | 20.有效的括号(B站笔试题)
下一篇:菜菜的刷题日记 | 蓝桥杯 — 子串分值【第十一届】【省赛】【A组】

本人水平有限,文章中不足之处欢迎下方

菜菜的刷题日记 | 蓝桥杯 — 十六进制转八进制(纯手撕版)附进制转换笔记相关推荐

  1. 菜菜的刷题日记 | 66.加一 Plus One

    系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 菜鸡的刷题之路--2022/1/7 文章目录 [题目] [我的代码] [参考代码1] [参考代码2] [参考代码3] [思 ...

  2. 菜菜的刷题日记 | 12.整数转罗马数字

    系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 菜鸡的刷题之路--2022/1/24,这几天忙着肝并发编程,题在做但是没空写题解,今晚补一篇. 文章目录 [题目] [官方 ...

  3. 蓝桥杯 十六进制转为八进制 C语言版

    ** 蓝桥杯 十六进制转为八进制 ** 题目 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由09.大 ...

  4. 蓝桥杯-十六进制转八进制(java)

    基础练习 十六进制转八进制 时间限制:1.0s 内存限制:512.0MB问题描述给定n个十六进制正整数,输出它们对应的八进制数.输入格式输入的第一行为一个正整数n (1<=n<=10).接 ...

  5. 蓝桥杯——十六进制转八进制(Java解法)

    这道题其实挺难的,之前做过一次,用的十六进制转化为十进制,然后用十进制再转化为八进制,代码很简单,用的jdk上自带的进制转换进行换算. import java.util.Scanner; /** * ...

  6. 题库练习2(随机数去重排序、分割字符串、进制转换)

    1. 随机数去重排序 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉 ...

  7. 蓝桥杯-十六进制转八进制

    这个题还是有点含金量,第一遍做出来,很可能会超时,比如以下代码: import java.util.ArrayList; import java.util.Scanner;public class M ...

  8. 蓝桥杯:十六进制转八进制

    基础练习 十六进制转八进制 时间限制:1.0s   内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n< ...

  9. 蓝桥杯16转八c语言,蓝桥杯 十六进制转八进制

    思路: 先将十六进制转为二进制,再将二进制转为八进制 代码: #include #include #include #include #include #include #define for1(i, ...

最新文章

  1. Docker 容器技术 — Private Registry
  2. ASP.Net Core Web API 如何返回 File。
  3. Forward团队-爬虫豆瓣top250项目-模块开发过程
  4. javascript原型_JavaScript原型初学者指南
  5. 宋浩 概率统计 笔记_推论统计分析学习笔记
  6. linux 卷文件满,LVM逻辑卷容量的增减
  7. mac remix导入本地项目
  8. 集线器、交换机与路由器有什么区别?
  9. 【图片】图片处理,图片压缩相关知识分享
  10. 正则表达式:JAVA正则表达式运用
  11. java 集成极光推送
  12. unreal4特性介绍
  13. 理解计算机3D图形学中的坐标系变换
  14. 什么是signal(SIGCHLD, SIG_IGN)函数
  15. AI数字攻防看数字社会基建发展
  16. 陌陌和它的解药,聊聊出海社交产品的思路
  17. 一个基于GPRS模块及云后台的开源系统--Luat
  18. 意念机Umind及其控制无人机
  19. 【调度】经典作业车间调度问题VS柔性作业车间调度问题
  20. python之正弦图

热门文章

  1. 财务人日常要用到的10大网站,这次给你整全了!
  2. android ratingbar 高度,简单实用的自定义AndroidRatingBar
  3. iphone数据传输已取消怎么办_苹果同一个账号不想同步传输 苹果同一个id怎么取消同步...
  4. 燕麦片的减肥效果怎么样?
  5. Chrome插件请求数据时 请求报错(blocked:mixed-content)
  6. java输出一个空心的爱心
  7. 淘宝店铺运营技巧,宝贝转化率的因素有哪些,如何提高店铺转化
  8. 红米k40s和红米note11pro哪个值得买 两者配置对比
  9. 递归遍历二叉树并且求和
  10. 空间三角形_玄关三角形沙发不靠墙,这设计真牛,直接解决无玄关空间少的问题...