2427: 二进制加法:
给出一个十进制自然数N, 请求出N(0<=n<=10^9)的M(2<=M<=16)进制位逆转后是多少,将答案转化为十进制输出。
输入 :
多组实例,每组实例输入两个数字N和M。
输出 :
输出转换后的数字。
python代码:
# 多实例测试
lis1 = []
while True:
try:
li = list(map(int, input().split()))
if li == []:
break
else:
lis1.append(li)
except:
break
# 转换为进制
def f(n, x):
# n为待转换的十进制数,x为机制,取值为2-16
a = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'b', 'C', 'D', 'E', 'F']
b = []
while True:
s = n // x # 商
y = n % x # 余数
b = b + [y]
if s == 0:
break
n = s
c=[]
for i in b:
c.append(a[i])
return (int(''.join(c),x)) #转化为十进制
for i in range(len(lis1)):
print(f(lis1[i][0], lis1[i][1]))
人生苦短,我用python。