当前位置: 高中信息技术 / 综合题
  • 1. (2022高二下·舟山期末) 罗马数字是阿拉伯数字传入之前使用的一种数码。罗马数字采用七个罗马字母作基本数字,即Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)。

    具体的记数方法为:

    ①相同的数字连写,所表示的数等于这些数字相加得到的数,如Ⅲ=3;

    ②小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数,如Ⅷ=8、Ⅻ=12;

    ③单个小的数字(限于Ⅰ、X和C)在大的数字的左边,所表示的数等于大数减小数得到的数,如Ⅳ=4、Ⅸ=9

    王老师结合上述规则,在7个基本数字基础上新增了部分常用数字,并设计了一个将罗马数字和阿拉伯数字进行相互转换的程序,运行界面如图所示:

    实现该功能的程序代码如下:

    num=[1000, 900, 500, 400,  100, 90, 50, 40,  10, 9, 5, 4,  1]

    roma={1000: 'M', 900: 'CM', 500: 'D', 400: 'CD', 100: 'C', 90: 'XC', 50: 'L', 40: 'XL',  10: 'X', 9: 'IX', 5: 'V', 4: 'IV',  1: 'I'}
    s=input('输入一个罗马数字: ')

    result1=0

        ①  

    for i in range(13):

      while s[k:k+len(roma[num[i]])]==roma[num[i]]:

      result1 += num[i]

     

    print('阿拉伯数字是:',result1)

    n=int(input('输入一个阿拉伯数字:'))

    result2=''

    for i in range(13):

      while n>=num[i]:

        result2 = result2 + roma[num[i]]

        ②   

    print('罗马数字是:',result2)

    根据以上代码,回答下列问题:

    1. (1) “roma”的数据结构类型是
    2. (2) 要实现数字转换,请完善上述程序的划线处代码。

    3. (3) 上述程序中加框处代码有误,请改正。

微信扫码预览、分享更方便