题解 | #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))
