- 十六进制转十进制
资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。 样例输入 FFFF 样例输出 65535
- 解答程序
# 十六进制转十进制
temp_dict = {'0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9, 'A':10, 'B':11, 'C':12, 'D':13, 'E':14, 'F':15}
oxstr = input()
weight = 1
tar = 0
for s in oxstr:
tar = tar * 16 + temp_dict[s]
print(tar)
- 经验教训 无。
- 十六进制转八进制
资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数。 输入格式 输入的第一行为一个正整数n (1 7: temp = raw_int - raw_int // 8 * 8 tar_int = str(temp) + tar_int raw_int = raw_int // 8 else: tar_int = str(raw_int) + tar_int return tar_int
然而,这种方式执行的代码时间执行长度远远超过1s,这也是python语言最容易遇到的问题。研究后笔者发现,事实上python的int函数可以直接处理进制问题。
int(x, base) x为字符串或者整数,base为进制数
但是当x为整数的时候,进制数参数是被禁用的,也就是说我们无法将十进制数直接扔进去转为八进制数。因此我们还需要用print的格式化输出
print("%o" %()) %o表示无符号格式化八进制
于是代码被修改为
n = int(input())
temp_list =[int(input(), base=16) for i in range(n)]
for i in temp_list:
print("%o" %(i))
简洁明了,运行时间还只需要31ms。
做此类题目可以明白一定要充分发挥python的优势,在执行速度方面无法与C,JAVA比较的前提下要尽可能发挥python提供的方法,熟悉python语言的函数是非常重要的。
- 数列排序
资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?