zoukankan      html  css  js  c++  java
  • 2019-2020-1学期 20192428 第二周作业——阿拉伯数字转换罗马数字

    关于罗马数字转换为阿拉伯数字的Python程序编程

    阿拉伯数字计数法作为传统的位置计数方法,想被罗马数字转换是一件较为困难的事情,罗马数字的规律我进行了总结,如下:

    1. 相同的数字连写,所表示的数等于这些数字相加得到的数(最多只能连写三次
    2. 小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数
    3. 小的数字,(限于Ⅰ、X和C)在大的数字的左边,所表示的数等于大数减小数得到的数

    因此,借助len函数,常规的判断语句以及循环语句,基础的print,input等函数,我成功编辑出这一个程序。

    代码如下:(可以借鉴,严禁抄袭

    #阿拉伯数字转换罗马数字1~3999
    #I=1 V=5 X=10 L=50 C=100 D=500 M=1000 IV=4 IX=9 XL=40 XC=90 CD=400 CM=900
    #在构成数字的时候,有下列规则:
    #1、相同的数字连写,所表示的数等于这些数字相加得到的数
    #2、小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数
    #3、小的数字,(限于Ⅰ、X和C)在大的数字的左边,所表示的数等于大数减小数得到的数
    
    print('''--------------------------------------------------
    作者:20192428魏来
    阿拉伯数字向罗马数字的转换
    --------------------------------------------------''')
    list = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}
    a = 0
    while a < 9999 : #多次进行转换:(9998次)
        a = a+1
        romannum = input('''--------------------------------------------------
    请输入罗马数字(输入范围:1-3999):''')
        result = 0
        omit = -1  # omit为需省略的字符位
        if romannum in list:
            print(list[romannum])
        else:
            for b in range(len(romannum)):  # 遍历字符串的每一位:(0,len-1)
                if b == omit:  # 如果无需省略b
                    pass
                elif b <= len(romannum)-2:  # 如果还没有遍历到最后一位:(len-1-1)
                    if list[romannum[b]] < list[romannum[b+1]]:  # 如果前一位对应值小于后一位的
                        result += list[romannum[b+1]] - list[romannum[b]]  # 进行减操作
                        omit = b+1  # 省略下一位字符
                    else:
                        result += list[romannum[b]]
                else:  #  遍历到最后一位
                    result += list[romannum[b]]
            print('''对应阿拉伯数字为:{}
    --------------------------------------------------'''.format(result))
    
    

    若有补充或者改进,欢迎留言。




  • 相关阅读:
    shell下如何删除文件的某一列
    git如何列出最简短的commit(tag和head名都不显示)
    git如何列出每次提交对应有哪些文件被修改
    linux下如何使用命令行配置网络
    64bit ubuntu如何使能安装32bit软件
    linux下如何查看当前机器提供了哪些服务
    vi如何修改注释颜色
    uboot启动提示Error, wrong i2c adapter 0 max 0 possible后卡住了怎么办
    linux 如何改变文件属性与权限1
    Linux文件系统只读Read-only file system的解决方法
  • 原文地址:https://www.cnblogs.com/KamanFuture/p/11655414.html
Copyright © 2011-2022 走看看