当前位置: 首页 > 工具软件 > RPython > 使用案例 >

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

范书
2023-12-01

“输入十进制整数和欲转换的进制数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

 类似资料: