进制转换
链接: link.
输入一个十进制数N,将它转换成R进制数输出。
输入格式
输入一个正整数T 。表示测试数据的组数。
每个测试实例包含两个整数N (32位整数) 和R(2<=R<=36).
输出格式
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10 ,则对应的数字规则参考16进制(比如,10用 A 表示 , 16用 G 表示等等)。
样例
#input
3
7 2
23 12
-4 3
#output
111
1B
-11
思路
- 需要注意的就是进制对应的数值表。
- 负数可以先用绝对值求出对应的进制转换值然后用join函数输出时候前面加负号就可以了。
python实现
def convert_number(N,R):
remainder = []
col = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
result = []
N = abs(N)
while N > 0:
res = N % R
remainder.append(res)
N = N // R
while len(remainder)>0:
result.append(col[remainder.pop()])
return result
number = int(input())
for i in range(number):
N,R = map(int,input().split())
if N>0:
print("".join(convert_number(N, R)))
else:
print("-"+"".join(convert_number(N, R)))
仅记录刷题过程以及需要注意的知识点,方便自己复习。