zoukankan      html  css  js  c++  java
  • 罗马数字转阿拉伯数字

    罗马数字转阿拉伯数字

    1.罗马数字是位置计数吗?它的缺点是什么?

    答:不是;缺点为形式、书写不便,缺少零。

     

    2.将学号20201210转为罗马数字:

    2 -----> II
    0 ----->
    2 -----> II
    0 -----> 
    1 -----> I
    2 -----> II
    1 -----> I
    0----- >

    3.程序大致如下:

     def transform_alabo2_roman_num(one_num):

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

     

         str_list=["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"]

     

         res=''

     

         for i in range(len(num_list)):

     

             while one_num>=num_list[i]:

     

                one_num-=num_list[i]

                res+=str_list[i]

     

         return res

     

    def transform_roman_num2_alabo(one_str):

     

      '''''

      将罗马数字转化为阿拉伯数字

     

      '''

     

      define_dict={'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}

     

      if one_str=='0':

     

        return 0

     

      else:

     

        res=0

     

        for i in range(0,len(one_str)):

     

          if i==0 or define_dict[one_str[i]]<=define_dict[one_str[i-1]]:

     

            res+=define_dict[one_str[i]]

     

          else:

     

            res+=define_dict[one_str[i]]-2*define_dict[one_str[i-1]]

     

        return res

     

    if __name__ == '__main__':

     

        print ('**************将罗马数字转化为阿拉伯数字**************')

     

        one_str_list=['DII','XV','MDCLXVI','XII','VIII','XCIX','XII']

     

        for one_str in one_str_list:

     

            print (one_str,'----->',transform_roman_num2_alabo(one_str))

     

        print('**************将阿拉伯数字转化为罗马数字**************')

     

        one_num_list=[2,0,2,0,1,2,1,0]

     

        for one_num in one_num_list:

     

            print(one_num,'----->',transform_alabo2_roman_num(one_num))

    参考百度中已有代码,研究后大致理解。

     

  • 相关阅读:
    C#计算代码的执行耗时
    c#值类型和引用类型
    C#类、接口、虚方法和抽象方法
    15,了解如何在闭包里使用外围作用域中的变量
    函数闭包,golbal,nonlocal
    init())函数和main()函数
    函数的命名空间
    函数的默认参数是可变不可变引起的奇怪返回值
    遍历目录
    super顺序
  • 原文地址:https://www.cnblogs.com/wxMing/p/13835438.html
Copyright © 2011-2022 走看看