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

    罗马数字转阿拉伯数字

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

    答:罗马数字并不是位置技术,他的缺点:书写困难,规则繁杂,没有数字0

    2.将学号20191204转为罗马数字(因罗马数字没有0,此处将其空出)

    2 -----> II
    0 ----->
    1 -----> I
    9 -----> IX
    1 -----> I
    2 -----> II
    0 ----->
    4 -----> IV

    代码如下:

    def transform_alabo2_roman_num(one_num):
         num_list=[1000900500400100905040109541]
         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,1,9,1,2,0,4]
        for one_num in one_num_list:
            print(one_num,'----->',transform_alabo2_roman_num(one_num))
     
    备注:因能力有限无法做出输入数字然后输出的形式,先只能通过修改代码中的值来改变。
        

     

  • 相关阅读:
    发现IDEA两个超级好用的工具
    事务的传播属性
    Java 单元测试PowerMockito
    Spirng源码学习 第一天
    2021年 每日打卡
    Spring源码调试环境搭建成功
    practice
    学习进度表
    报数
    负二进制转换
  • 原文地址:https://www.cnblogs.com/lhpshuaibi/p/11670492.html
Copyright © 2011-2022 走看看