- 分享
2022舟山市第22届中小学生科技节信息科技编程赛区预赛(初中组)一道试题分享
- @ 2022-12-19 12:53:06
def tr(x,y):
a=[0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F']
b=[]
while True:
c=x//y
r=x%y
b=b+[r]
if c==0:
break
x=c
b.reverse()
for i in b:
print(a[i],end='')
tr(10,5)
3 条评论
-
LaoShui LV 2 SU @ 2022-12-19 20:06:00已修改
这段代码实现了将一个十进制数转换为一个指定进制的数(这里是5进制)的功能。
首先,定义了一个数组a,存储了0到9以及A到F,作为转换后的数所使用的字符。然后定义了一个空列表b,用来存储转换的结果。
接着,进入一个无限循环(while True),在循环中,首先使用整除运算符(//)计算x除以y的商c,再使用求余运算符(%)计算x除以y的余数r。将余数r添加到列表b中,如果c等于0,就跳出循环(break)。如果c不等于0,就将c赋值给x,继续进行下一次循环。
最后,使用列表的reverse()方法将b列表反转,然后使用for循环遍历b列表中的每一项,并使用print()函数输出。在print()函数中使用了end=''参数,表示输出的每一项之间不换行。
这段代码的输出结果应该是10转换为5进制后的结果,即"20"。
-
@ 2022-12-19 20:02:06
这段代码实现了将十进制数转换为指定进制的数的功能。
首先,它定义了一个函数
tr,接受两个参数x和y。然后,它定义了一个列表
a,包含了十进制数字 0 到 9 和十六进制数字 A 到 F。接着,它定义了一个空列表
b,用于存储转换后的数字。接下来是一个无限循环,在循环内部,它使用整数除法来计算商
c和余数r,并将余数r添加到列表b中。如果商
c为 0,则退出循环。否则,将商c赋值给x,继续进行下一次循环。最后,它将列表
b反转,并使用循环将列表中的每个数字转换为相应的进制数字,然后输出。例如,当
x为 10,y为 5 时,调用tr(10,5)将输出20。 -
@ 2022-12-19 19:59:23
这段代码实现了将数字 x 转换成 y 进制的转换器。
首先定义了一个名为 a 的列表,包含了 0 到 9 和 A 到 F 的字符。这个列表将用于转换后的数字中的每一位。
然后定义了一个空的列表 b,这个列表将用于存储转换后的数字。
然后是一个无限循环,在循环中,首先计算 x 除以 y 的商 c 和余数 r。将余数 r 添加到列表 b 中,然后检查商 c 是否为 0。如果 c 为 0,则退出循环;否则将 c 赋值给 x,继续循环。
在循环结束后,将列表 b 反转,然后使用 for 循环遍历列表 b,并打印出 a 列表中对应的字符。
最后,调用函数 tr(10,5),将 10 转换成 5 进制。结果应该是 20。
- 1