题解 | #人民币转换#

人民币转换

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

各种if语句应接不暇
x = '零、壹、贰、叁、肆、伍、陆、柒、捌、玖'

xi = '壹、贰、叁、肆、伍、陆、柒、捌、玖'
xi = xi.split('、')
y = {}
for n, i in enumerate(x.split('、')):
    y[str(n)] = i

ii = '123'



def get_bai(ii):
    if len(ii) == 1:
        u = y[ii]
    elif len(ii) == 2:
        u = y[ii[0]]+'拾'+y[ii[1]]
    elif len(ii) == 3:
        u = y[ii[0]]+'佰'+y[ii[1]]+'拾'+y[ii[2]]
    elif len(ii) == 4:
        u = y[ii[0]]+'仟'+y[ii[1]]+'佰'+y[ii[2]]+'拾'+y[ii[3]]
    else:
        return '零'
    ul = list(u)
    def get_l(ul):
        for n, i in enumerate(ul):
            if n+1 == len(ul):  # 如果零后面没有了 则删除自己。
                ul.pop(n)
                return ul
            elif i == '零' and ul[n+1] not in xi:  # 如果零后面有单位或零,则删除后面的。
                ul.pop(n+1)
                return get_l(ul)
        return ul
    if '零' in ul:
        get_l(ul)
    return ''.join(ul)

def get_jf(ii):
    res = y[ii[0]]+'角'+y[ii[1]]+'分'
    if ii[1] == '0':
        res = res[0:-2]
    elif ii[0] == '0':
        res = res[-2:]
    return res

def get_all(ii):
    if len(ii) <= 4:
        res = get_bai(ii)
        if len(res) == 3 and res[0] == '壹':
            res = res[1:]
        return res
    elif 4 < len(ii) < 9:
        res1 = get_bai(ii[0:-4])
        if len(res1) == 3 and res1[0] == '壹':
            res1 = res1[1:]
        res2 = get_bai(ii[-4:])

        return res1+'万'+res2


while True:
    try:
        l = list(map(str, input().split('.')))
        if len(l) == 1:
            res = get_all(l[0])
            print('人民币'+res+'元整')
        else:
            res = get_all(l[0])
            if res:
                print('人民币'+res+'元' + get_jf(l[1]) )
            else:
                print('人民币' +get_jf(l[1]))
    except EOFError:
        break



全部评论

相关推荐

07-07 11:33
江南大学 Java
已经在暑假实习了&nbsp;,没有明确说有hc,纠结实习到八月份会不会有点影响秋招毕竟感觉今年好多提前批
程序员小白条:92的话准备提前批,其他没必要,没面试机会的,而且你要准备充分,尤其八股和算法题
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 12:10
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务