十进制转其他进制进制

题目
输入一个十进制数 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代码
发布了8 篇原创文章 · 获赞 0 · 访问量 35

猜你喜欢

转载自blog.csdn.net/weixin_43755257/article/details/105060208