题解 | #学英语#

学英语

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

dic = {
    "0": "zero",
    "1": "one",
    "2": "two",
    "3": "three",
    "4": "four",
    "5": "five",
    "6": "six",
    "7": "seven",
    "8": "eight",
    "9": "nine",
    "10": "ten",
    "11": "eleven",
    "12": "twelve",
    "13": "thriteen",
    "14": "fourteen",
    "15": "fifteen",
    "16": "sixteen",
    "17": "seventeen",
    "18": "eighteen",
    "19": "nineteen",
    "20": "twenty",
    "30": "thirty",
    "40": "forty",
    "50": "fifty",
    "60": "sixty",
    "70": "seventy",
    "80": "eighty",
    "90": "ninety",
}


def one(s):
    if s != "0":
        return dic[s] + " "
    return ""


def ten(s):
    out = ""
    if s[0] != "0":
        if s[0] == "1":
            out += dic[s[0] + s[1]] + " "
        else:
            out += dic[s[0] + "0"] + " " + one(s[1])
    else:
        out += one(s[1])
    return out


def hundred(s):
    out = ""
    if len(s) == 3:
        flag = True
        if s[0] != "0":
            out += dic[s[0]] + " " + "hundred" + " "
        else:
            flag = False
        if s[1] != "0" or s[2] != "0":
            if flag:
                out += "and" + " "
            out += ten(s[1] + s[2])
    if len(s) == 2:
        out += ten(s[0] + s[1])
    if len(s) == 1:
        out += one(s)
    return out


n = input()
s = ""
if len(n) >= 10:
    s += hundred(n[:-9]) + "billion" + " "
    n = n[-9:]
if len(n) >= 7:
    s += hundred(n[:-6]) + "million" + " "
    n = n[-6:]
if len(n) >= 4:
    s += hundred(n[:-3]) + "thousand" + " "
    n = n[-3:]
s += hundred(n)
print(s)

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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