python进制转换问题“输入十进制整数和欲转换的进制数r,将十进制转换为r进制数(r>=2)”

mac2024-04-12  28

“输入十进制整数和欲转换的进制数r,将十进制转换为r进制数(r>=2)”

这是学校的python课的第七次上机题,我们这一届是第一届开python课的。可以看出老师也是下了功夫的,基本上网上找不到一样的题目。

简而言之,就是输入两个数字。第一个是十进制整数,第二个是要转换成的进制。主要问题是2到10进制是不带字母的,而10以上的进制都含有字母,所以得分类讨论。

还有就是十进制转Q进制的伪代码,它是这样的:

int z[40],num=0;//数组z存放Q进制数y的每一位,num为位数 do{ z[num++]=y%Q;//除基取余 y=y/Q; }while(y!=0);//当商不为零时进行循环

差不多就给出全部代码吧,用的是python:

def hashFuc(x, y): if y < 10: z = [] while x != 0: z.append(x % y) x = x // y result = z[::-1] else: k = [] z = [] while x != 0: z.append(x % y) x = x // y for i in range(len(z)): if z[i] >= 10: z[i] = z[i] - 10 + ord('A') elif z[i] <= 9 and z[i] >= 0: z[i] = z[i] + ord('0') for i in range(len(z)): k.append(chr(z[i])) result = k[::-1] for i in range(len(result)): print(result[i], end='') print('\n') while True: a = int(input("输入一个数字")) b = int(input("输入进制数:")) hashFuc(a, b)

END

最新回复(0)