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

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

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TIM33470348

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值