#每日一练里的题目,要求将1-3999的阿拉伯数字转换成罗马数字
"""""
I, II, III, IV, V, VI, VII, VIII, IX = 1, 2, 3, 4, 5, 6, 7, 8, 9
X, XX, XXX, XL, L, LX, LXX, LXXX, XC = 10, 20, 30, 40, 50, 60, 70, 80, 90
C, CC, CCC, CD, D, DC, DCC, DCCC, CM = 100, 200, 300, 400, 500, 600, 700, 800, 900
M, MM, MMM = 1000, 2000, 3000
"""""
def T(t):
if len(t) == 1:
if t == '1':
return 'I'
elif t == '2':
return 'II'
elif t == '3':
return 'III'
elif t == '4':
return 'IV'
elif t == '5':
return 'V'
elif t == '6':
return 'VI'
elif t == '7':
return 'VII'
elif t == '8':
return 'VIII'
elif t == '9':
return 'IX'
if len(t) == 2:
if t == '10':
return 'X'
elif t == '20':
return 'XX'
elif t == '30':
return 'XXX'
elif t == '40':
return 'XL'
elif t == '50':
return 'L'
elif t == '60':
return 'LX'
elif t == '70':
return 'LXX'
elif t == '80':
return 'LXXX'
elif t == '90':
return 'XC'
if len(t) == 3:
if t == '100':
return 'C'
elif t == '200':
return 'CC'
elif t == '300':
return 'CCC'
elif t == '400':
return 'CD'
elif t == '500':
return 'D'
elif t == '600':
return 'DC'
elif t == '700':
return 'DCC'
elif t == '800':
return 'DCCC'
elif t == '900':
return 'CM'
if len(t) == 4:
if t == '1000':
return 'M'
elif t == '2000':
return 'MM'
elif t == '3000':
return 'MMM'
def S():
Z = input('请输入数字:')
print(len(Z))
if len(Z) == 1:
if Z == '0':
return '请输入1-3999的整数'
elif Z == '1':
return 'I'
elif Z == '2':
return 'II'
elif Z == '3':
return 'III'
elif Z == '4':
return 'IV'
elif Z == '5':
return 'V'
elif Z == '6':
return 'VI'
elif Z == '7':
return 'VII'
elif Z == '8':
return 'VIII'
elif Z == '9':
return 'IX'
else:
return '请输入数字'
if len(Z) == 2:
if Z == '10':
return 'X'
elif Z == '20':
return 'XX'
elif Z == '30':
return 'XXX'
elif Z == '40':
return 'XL'
elif Z == '50':
return 'L'
elif Z == '60':
return 'LX'
elif Z == '70':
return 'LXX'
elif Z == '80':
return 'LXXX'
elif Z == '90':
return 'XC'
else:
m = str(eval(Z[0])*10)
n = str(eval(Z[1]))
return T(m)+T(n)
if len(Z) == 3:
if Z == '100':
return 'C'
elif Z == '200':
return 'CC'
elif Z == '300':
return 'CCC'
elif Z == '400':
return 'CD'
elif Z == '500':
return 'D'
elif Z == '600':
return 'DC'
elif Z == '700':
return 'DCC'
elif Z == '800':
return 'DCCC'
elif Z == '900':
return 'CM'
else:
m = str(eval(Z[0])*100)
n = str(eval(Z[1])*10)
z = str(eval(Z[2]))
if n == '0':
return T(m)+T(z)
if z == '0':
return T(m)+T(n)
return T(m)+T(n)+T(z)
if len(Z) == 4:
if Z == '1000':
return 'M'
elif Z == '2000':
return 'MM'
elif Z == '3000':
return 'MMM'
else:
m = str(eval(Z[0])*1000)
n = str(eval(Z[1])*100)
z = str(eval(Z[2])*10)
x = str(eval(Z[3]))
if eval(Z) > 3999:
return '请输入1-3999的整数'
if n == '0' and x == '0':
return T(m)+T(z)
if n == '0' and z == '0':
return T(m)+T(x)
if z == '0' and x == '0':
return T(m) + T(n)
if n == '0':
return T(m)+T(z)+T(x)
if z == '0':
return T(m)+T(n)+T(x)
if x == '0':
return T(m)+T(n)+T(z)
return T(m) + T(n) + T(z) + T(x)
else:
return '请输入1-3999的整数'
while 1 < 2:
print(S())