r进制转换为十进制python_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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值