资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
输入的第一行为一个正整数n (1<=n<=10)。
接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
输出n行,每行为输入对应的八进制正整数。
【注意】
输入的十六进制数不会有前导0,比如012A。
输出的八进制数也不能有前导0。
样例输入
2
39
123ABC
样例输出
71
4435274
【提示】
先将十六进制数转换成某进制数,再由某进制数转换成八进制。
如有更简便的方法,欢迎讨论~
#2021.11.4给定n个十六进制正整数,输出它们对应的八进制数。
import numpy as np
print("请输入要转换多少个十六进制数字?(1<=n<=10)")
n = input()
n = int(n)
if n<1 or n>10:
print("error")
else:
nums_16 = []
for i in range(n):
nums_16.append(input())
# print('0x'+str(nums[0]))
#先转换为十进制再转八
nums_10 = []
nums_8 = []
for i in range(n):
nums_10.append(int('0x'+nums_16[i],16))
for i in range(n):
nums_8.append(oct(nums_10[i]))#转换为八进制
for i in range(n):
nums_8[i]= nums_8[i].lstrip("0o")#为了满足题意将开头的两个字符删掉
print("转换成八进制的数字如下:")
print(nums_8)