阿拉伯数字转换成罗马数字

#每日一练里的题目,要求将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())

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值