题解 | #学英语#

学英语

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

n = int(input())
ones = {
    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: "sixteen",
    17: "seventeen",
    18: "eighteen",
    19: "nineteen",
}
tens = {
    2: "twenty",
    3: "thirty",
    4: "forty",
    5: "fifty",
    6: "sixty",
    7: "seventy",
    8: "eighty",
    9: "ninety",
    1: "ten",
}
def transfer(attr):
    if 0 <= attr <= 19:
        return ones[attr]
    elif 20 <= attr <= 99:
        return tens[attr // 10] + ["" if attr % 10 == 0 else " "][0] + ones[attr % 10]
    elif 100 <= attr <= 999:
        return (
            ones[attr // 100]
            + " hundred "
            + ["" if attr % 100 == 0 else "and "][0]
            + transfer(attr % 100)
        )
if n <= 999:
    print(transfer(n))
elif 1000 <= n <= 999999:
    print(transfer(n // 1000) + " thousand " + transfer(n % 1000))
else:
    print(
        transfer(n // 1000000)
        + " million "
        + transfer((n % 1000000) // 1000)
        + " thousand "
        + transfer((n % 1000000) % 1000)
    )

一起讨论啊

全部评论

相关推荐

04-05 21:13
邯郸学院 Java
点赞 评论 收藏
分享
03-21 08:46
已编辑
门头沟学院 C++
一个什么都不会的学生:当你有硕士学历的时候HR会说就是比本科生强
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客企业服务