题解 | #HJ42.学英语#

学英语

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

做完这题就真的“学”英语了。很多数字的英语单词一拼就错,比如:
14: fourteen. 40: forty. 15: fifteen, 50: fifty.

keyword = {100:"hundred", 1000:"thousand", 1000000:"million", 1000000000:"billion", 1:"one", 2:"two", 3:"three", 4:"four", 5:"five", 6:"six", 7:"seven", 8:"eight", 9:"nine", 10:"ten", 11:"eleven", 12:"twelve"}
teen = ["ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"]
ty = ["", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"]
def engnum(num):
    ans = ""
    if num<=12:
        return keyword[num]
    elif num>=1000000000:
        front = num // 1000000000
        end = num % 1000000000
        ans += engnum(front) + "billion"
        ans += engnum(end)
    elif num>=1000000:
        front = num // 1000000
        end = num % 1000000
        ans += engnum(front) + " " + "million "
        ans += engnum(end)
    elif num>=1000:
        front = num // 1000
        end = num % 1000
        ans += engnum(front) + " " + "thousand "
        ans += engnum(end)
    elif num >= 100:
        front = num // 100
        end = num % 100
        ans += engnum(front) + " " + "hundred "
        if end>0:
            ans += "and " + engnum(end)
    else:
        front = num // 10
        end = num % 10
        if front == 1:
            return teen[end]
        temp = ty[front]
        if end > 0:
            temp += " " + keyword[end]
        return temp
    return ans

if __name__ == '__main__':
    num = int(input())
    print(engnum(num))


#华为笔试#
全部评论
你好,我想问一下(以第16行为例)的空格为什么要加上呀
点赞 回复 分享
发布于 2023-09-19 16:51 湖南

相关推荐

复制粘贴骂ai!
聪明的加菲猫又在摸鱼:我写论文也是这样,不断教育ai
点赞 评论 收藏
分享
SHC2:关键问题是你这三段实习是三个不同的岗位…你这样子秋招就是只有一段实习的本科生..
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务