前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python|进制转换

Python|进制转换

作者头像
算法与编程之美
发布2019-12-24 12:20:34
6900
发布2019-12-24 12:20:34
举报
文章被收录于专栏:算法与编程之美

问题描述

输入一组M进制数的整数,将其转换为L进制后,统计其中的最大值和最小值并输出。

输入说明:第一行是整数N、M和L, N表示这组数的个数, M表示输入数字的进制(可能是2, 8, 10) ,

将其转换为L进制(可能是2, 8, 10)

输出说明:转换后的L进制数中的最大值和最小值,中间用空格隔开。

输入样例: 6 10 8

15 9 10 3 6 7

输出样例: 17 3

解决方案

1 样式理解:

第一行第一个表示下一行有多少个数,第二个表示输入数的进制,第三个表示要转换的进制

2 输入值的处理:

用input输入的都是字符串 但这个字符串包含额三个值所以要用split把字符串切片split的用法可以看我的另外一篇博客

3 对应进制的处理:

因为不同的M,L对应的进制转化不同,所以我们定义一个函数来处理不同的ML情况下的进制转换,由十进制转其他进制或其他进制转十进制都有相关内置函数

其他进制可以先转为十进制再转其他进制

4 最大值处理:

把转化好的数放入一个列表中 用max函数输出最大值

5 输出处理:

因为进制内置函数转换后会有前缀 所以可以把他转成字符串输出前缀后面的数

Python代码:

N,M,L=input().split(' ')list1=input().split(' ')box=[]def jinzhi(i): if M=='10': if L=='8': return oct(i) if L=='2': return bin(i) if M=='8': if L=='10': return int(i,8) if L=='2': return bin(i) if M=='2': if L=='10': return int(i,2) if L=='8': return oct(i)for i in list1: i=int(i) box.append(i)x,y=jinzhi(max(box)),jinzhi(min(box))print(str(x)[2:],str(y)[2:])

END

实习编辑 | 王楠岚

责 编 | 王自强

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档