• 分享
  • 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 条评论

  • @ 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,接受两个参数 xy

      然后,它定义了一个列表 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