题解 | #学英语#
学英语
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="")

查看1道真题和解析