一、罗马数字不是位置计数,它的缺点有:
1.没有0
2.在表示稍微大一点的数(如163)时很麻烦且不直观(还要靠左减右加来计算),可读性极差。
3.难以做乘除运算(还是不直观)
二、20202423转化为罗马数字:
由于在罗马数字上加横线表示千倍的方法最多只能表示七位数字,所以我决定把自己的学号分成两个四位数来表示——MMXX   MMCDXXIII
 
三、罗马转数字,有了之前的经验就快得多了
主要用到了count语句,计算罗马字符,并排除了重复计算的bug
刚刚看了一下魏来学长去年写的博客,表示自己太菜了没看懂,感觉我这个很low但是很骚,最骚的是它转化出来居然还是对的
代码如下:
n=input("Enter your number: ")
a=0
b=0
c=0
d=0
e=0
f=0
g=0
h=0
i=0
j=0
k=0
l=0
m=0
a=n.count("M")
d=n.count("CD")
if d==0:
    b=n.count("D")
    c=n.count("C")
l=n.count("XC")
if l=0:
   f=
g=n.count("XL")
if g==0:
    e=n.count("L")
    f=n.count("X")
j=n.count("IV")
if j==0:
    h=n.count("V")
    i=n.count("I")
k=n.count("CM")
if k!=0:
    number=number-200*k
l=n.count("XC")
if l!=0:
    number=number-20*l
m=n.count("IX")
if m!=0:
    number=number-2*m
 

number=a*1000+b*500+c*100+d*400+e*50+f*10+g*40+h*5+i*1+j*4
print(number)
input(" ")
 更正:罗马字母转数字程序图中代码编写的程序不能表示 900,90和 9等一切带 9的数字,只需依法加上条件(着重标记处)即可,上述代码已更正此问题 ,感谢20202427张启辰提出的质疑!
 
20202423陈驭骐《罗马数字转阿拉伯数字》
 
20202423陈驭骐《罗马数字转阿拉伯数字》
 
 
20202423陈驭骐《罗马数字转阿拉伯数字》
 
 
20202423陈驭骐《罗马数字转阿拉伯数字》

相关文章: