题解 | #人民币转换#

人民币转换

https://www.nowcoder.com/practice/00ffd656b9604d1998e966d555005a4b

dic = {0:'零',1:'壹',2:'贰',3:'叁',4:'肆',5:'伍',6:'陆',7:'柒',8:'捌',9:'玖'}
def read_qian(n:int):
    qian = int(n / 1000)
    bai = int(n % 1000 / 100)
    shi = int(n % 100 / 10)
    ge  = int(n % 10)
    #数为0
    if n == 0:
        print('',end='')
    #千位
    if qian:
        print(dic[qian]+'仟',end='')
    #百位
    if bai:
        print(dic[bai]+'佰',end='')
    elif qian and shi:
        print('零',end='')
    #十位
    if shi != 1 and shi != 0:
        print(dic[shi]+'拾',end='')
    elif shi == 1:
        print('拾', end='')
    elif shi == 0 and ge and (bai + qian):

        print('零',end='')
    #个位
    if ge:
        print(dic[ge],end='')
    elif shi:
        print('',end='')

def Read(n: int):#读亿、万
    yi = int(n % 100000000000 / 100000000)
    wan = int(n % 100000000 / 10000)
    ge = int(n % 10000)

    read_qian(yi)
    if yi:
        print('亿', end='')

    read_qian(wan)
    if wan:
        print('万', end='')
    elif yi and ge:
        print('零', end='')

    read_qian(ge)

def read2(n):#读尾数
    if n == 0:
        print('',end='')
    shi = n // 10
    ge =  n % 10
    read_qian(shi)
    if int(shi):
        print('角',end='')
    elif ge:
        print('',end='')
    read_qian(ge)
    if ge:
        print('分',end='')

while True:
    try:
        n = str(float(input()))
        ls = n.split('.')
        n1 = int(ls[0])
        n2 = int(ls[1])
        if len(ls[1]) < 2:
            n2 = n2*10
        print('人民币',end='')
        Read(n1)
        if n1:
            print('元', end='')
        if n2:
            read2(n2)
        else:
            print('整')
    except:
        break





全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务