码迷,mamicode.com
首页 > 其他好文 > 详细

罗马数字转阿拉伯数字

时间:2019-10-16 23:08:49      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:字符   编程基础   print   while   ==   fine   规则   ***   转化   

罗马数字转阿拉伯数字

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

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

罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。(python)

 

字符          数值

 

I             1

 

V             5

 

X             10

 

L             50

 

C             100

 

D             500

 

M             1000

2.将学号20191210转为罗马数字(因罗马数字没有0,用空格表示)

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

代码如下:

 

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,1,9,1,2,1,0]

 

    for one_num in one_num_list:

 

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

 

从百度找的代码,验证后正确,但由于没有编程基础,未能理解这段代码。

罗马数字转阿拉伯数字

标签:字符   编程基础   print   while   ==   fine   规则   ***   转化   

原文地址:https://www.cnblogs.com/pogbar/p/11688922.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!