题解 | #学英语#

学英语

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

s = input()
cap = len(s)

d1 = {
    0:"",
    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: "thirteen",
    14: "fourteen",
    15: "fifteen",
    16: "seventeen",
    17: "seventeen",
    18: "eighteen",
    19: "nineteen",
}
d2 = {
    2: "twenty",
    3: "thirty",
    4: "forty",
    5: "fifty",
    6: "sixty",
    7: "seventy",
    8: "eighty",
    9: "ninety",
}


def hund(a):
    b = a.lstrip("0")  # 判断百位是否为0
    if len(b) == 0:
        return ""
    b = int(b)
    if 1 <= b <= 19:
        return d1[b]
    if 20 <= b <= 99:
        b = str(b)
        b2 = d2[int(b[0])]  # 十位
        b1 = d1[int(b[1])]  # 个位
        if b[1] =='0':
            return b2
        else:
            return b2 + " " + b1
    if b >= 100:
        b = str(b)
        b3 = d1[int(b[0])]
        b4 = hund(b[1:3])
        if b[1:3] == '00':
            return b3 + " " + "hundred"
        else:
            return b3 + " " + "hundred" + " " +'and'+' '+ b4


if cap <= 3:
    print(hund(s))
elif 4 <= cap <= 6:
    s = s.rjust(6, "0")
    print(hund(s[:3]), end="")
    print(" " + "thousand" + " ", end="")
    print(hund(s[3:6]))
elif cap == 7:
    print(hund(s[:1]), end="")
    print(" " + "million" + " ", end="")
    print(hund(s[1:4]), end="")
    print(" " + "thousand" + " ", end="")
    print(hund(s[4:7]), end="")

全部评论

相关推荐

01-12 09:24
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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