分析:
这是一个进制转换问题,一个十进制正整数m转换成r进制数的思路是:将m不断除r取余数(若余数超过9,还要进行相应的转换,例如10以A表示,11以B表示…),直到商为零。以反序得到的数即为转换后的结果,反序的含义是最后得到的余数放在最高位。
程序代码如下:(函数中的参数m表示十进制整数,r表示进制,返回值是r进制的字符串。)
def tran(m,r):
trans = ""
while m!=0:
c = m % r
if c > 9:
trans = chr(c-10+ord("A")) + trans
else:
trans = str(c) + trans
m = m // r
return trans
m=int(input("请输入要转换的十进制数:"))
r=int(input("请输入要转换的进制:"))
print("十进制数 %d 转换成 %d 进制数为 %s"%(m,r,tran(m,r)))