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