#005 进制转换
题目描述
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
题解
题干中的”同时输入“这里有两种理解:输入多行数据之后,统一输出结果
res = []
while 1:
try:
s = input().strip()
res.append(s)
except:
break
for i in res:
num = 0
lens = len(i)
for k in range(2, lens):
if i[k].isalpha():
num += (ord(i[k])-55)*16**(lens-k-1)
elif i[k].isnumeric():
num += int(i[k])*16**(lens-k-1)
print(num)
或者,不断输入不断得到结果
while 1:
try:
s = input().strip()
num = 0
lens = len(s)
for k in range(2, lens):
if s[k].isalpha():
num += (ord(s[k])-55)*16**(lens-k-1)
elif s[k].isnumeric():
num += int(s[k])*16**(lens-k-1)
print(num)
except:
break
当然也可以调用本身的转换函数
while True:
try:
print(int(input(),16))
except:
break
总结一下
今天,2020年5月9日,上午一共做了5道题,希望坚持下去,争取在开学前做完。
- 明天上午5道题
- 总结一下牛客的输入输出方法