题目:
输入一个十进制数 N,将它转换成 R 进制数输出。在 10≤R≤16 的情况下,用’A’表示 10,用’B’表示 11,用’C’表示 12,用’D’表示 13,用’E’表示 14,用’F’表示 15。
输入格式
输入包含两个整数 N(N≤10000) 和 R(2≤R≤16)。
注意,N 有可能是负整数。
输出格式
输出一行,表示转换后的数。
样例输入
23 12
样例输出
1B
任意进制之间的转换可以用除k取余法
比如想把M进制转换成K进制,可以用输入数据连续去除K,直到商为零为止,然后把每次所得的余数倒看成一个数,就是相应的K进制数。
import sys
line = input().rstrip()
nums = list(map(int, line.split(' ')))
N=nums[0]
R=nums[1]
tag=0
res=[]
if N<0:
N=-N
tag=1
if N==0:
print(0)
sys.exit()
while(N):
if N%R>=10:
res.append(chr(ord('A')+N%R-10)) # ord函数计算字符串的ascii码值
else:
res.append(N%R)
N=int(N/R)
if tag==1:
print('-',end='')
print(''.join(reversed(list(map(str,res)))))
- python代码