题解 | #学英语#

学英语

http://www.nowcoder.com/practice/1364723563ab43c99f3d38b5abef83bc

s_1 = {'0':'','1':'one','2':'two','3':'three','4':'four','5':'five','6':'six','7':'seven','8':'eight','9':'nine'}
s_2 = {'10':'ten','11':'eleven','12':'twelve','13':'thirteen','14':'fourteen','15':'fifteen','16':'sixteen','17':'seventeen','18':'eighteen','19':'nineteen'}
s_3 = {'2':'twenty','3':'thirty','4':'forty','5':'fifty','6':'sixty','7':'seventy','8':'eighty','9':'ninety',}
def print_e (j,b):
    if(j == 0):
        if(b[0] == '0') & (b[1] == '0') & (b[2] == '0'):
            return ''
        else:
            if(b[0] == '0'):
                if(b[1] == '0'):
                    return s_1[b[2]] + ' million '
                elif(b[1] == '1'):
                    return  s_2[b[1] + b[2]]+ ' million '
                else:
                    return  s_3[b[1]] + ' '+ s_1[b[2]]+ ' million '
            else:
                if(b[1] == '0'):
                    return s_1[b[0]] + ' hundred' + ' and ' + s_1[b[2]]+ ' million '
                elif(b[1] == '1'):
                    return s_1[b[0]] + ' hundred ' + ' and ' + s_2[b[1] + b[2]]+ ' million '
                else:
                     return s_1[b[0]] + ' hundred ' + ' and ' + s_3[b[1]] +' '+ s_1[b[2]]+ ' million '
    elif(j == 1):
        if(b[0] == '0') & (b[1] == '0') & (b[2] == '0'):
            return ''
        else:
            if(b[0] == '0'):
                if(b[1] == '0'):
                    return s_1[b[2]] + ' thousand '
                elif(b[1] == '1'):
                    return s_2[b[1] + b[2]] + ' thousand '
                else:
                    return s_3[b[1]] + ' ' + s_1[b[2]] + 'thousand '
            else:
                if(b[1] == '0'):
                    return s_1[b[0]] + ' hundred' + ' and ' + s_1[b[2]] + ' thousand ' 
                elif(b[1] == '1'):
                    return s_1[b[0]] + ' hundred' + ' and ' + s_2[b[1] + b[2]] + ' thousand ' 
                else:
                    return s_1[b[0]] + ' hundred' + ' and ' + s_3[b[1]] +' '+ s_1[b[2]] + ' thousand '
    else:
        if(b[0] == '0') & (b[1] == '0') & (b[2] == '0'):
            return ''
        else:
            if(b[0] == '0'):
                if(b[1] == '0'):
                    return s_1[b[2]]
                elif(b[1] == '1'):
                    return  s_2[b[1] + b[2]]
                else:
                    return  s_3[b[1]] + ' ' +  s_1[b[2]]
            else:
                if(b[1] == '0'):
                    if(b[2] == '0'):
                        return s_1[b[0]] + ' hundred '
                    else:
                        return s_1[b[0]] + ' hundred ' + 'and ' + s_1[b[2]]
                elif(b[1] == '1'):
                    return s_1[b[0]] + ' hundred ' + 'and ' + s_2[b[1] + b[2]]
                else:
                    return s_1[b[0]] + ' hundred ' + 'and ' + s_3[b[1]] + ' ' + s_1[b[2]]
    

while True:
    try:
        num = int(input())
        num = '{:09d}'.format(num)
        num = list(num)
        num.insert(3,',')
        num.insert(7,',')
        num = ''.join(num)
        num = num.split(',')
        num_1 = print_e(0,num[0])
        num_2 = print_e(1,num[1])
        num_3 = print_e(2,num[2])
        print(num_1 + num_2 + num_3)
            
    except:
        break
华为机试题解(prod.by kedao) 文章被收录于专栏

华为实习机试题解

全部评论

相关推荐

程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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