题解 | #人民币转换#
人民币转换
https://www.nowcoder.com/practice/00ffd656b9604d1998e966d555005a4b
#写得好乱,感觉还没处理多个零的情况,不过过了就行,将就看吧,懒得改了
import sys
zd = '零壹贰叁肆伍陆柒捌玖拾佰仟万亿元角分整'
td = '"拾佰仟万亿'
def shibie(n:str):
if len(n) == 4:
return (zd[int(n[0])] +'仟'+ shibie(n[1:]))
elif len(n) == 3:
return zd[int(n[0])] +'佰'+ shibie(n[1:])
elif len(n) == 2:
if int(n[0]) != 1:
return zd[int(n[0])] +'拾'+ shibie(n[1:])
else:
return '拾'+ shibie(n[1:])
else:
return zd[int(n[0])]
n = input().split('.')
ans = ''
if int(n[0]) != 0:
m = len(n[0])
if m >8:
ans += shibie(n[0][:m-8]) +'万'
ans += shibie(n[0][m-8:m-4]) + td[-2]
ans += shibie(n[0][m-4:])
elif m >4:
ans += shibie(n[0][:m-4]) +'万'
ans += shibie(n[0][m-4:])
else:
ans += shibie(n[0])
ans += zd[-4]
if n[1][0] != '0':
ans += zd[int(n[1][0])] + zd[-3]
if n[1][1] != '0':
ans += zd[int(n[1][1])] + zd[-2]
if n[1][1] == '0' and n[1][0] == '0':
ans += zd[-1]
print('人民币'+ans)

查看24道真题和解析