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