题解 | #学英语#
学英语
https://www.nowcoder.com/practice/1364723563ab43c99f3d38b5abef83bc
n1 = ["one",'two','three',"four",'five','six','seven','eight','nine','ten','eleven','twelve','thirteen','fourteen','fifteen','sixteen','seventeen','eighteen',"nineteen"]
n2 = ["twenty",'thirty','forty','fifty','sixty','seventy','eighty','ninety']
n3 = ["billion",'million','thousand']
c = []
def sanwei(m):
if len(m)<=2 and int(m)<20:
c.append(n1[int(m)-1])
elif len(m)==2 and 20<=int(m):
c.append(n2[int(m[0])-2])
if m[1] !="0":
c.append(n1[int(m[1])-1])
elif len(m) ==3:
c.append(n1[int(m[0])-1])
if int(m[0]) !=0:
c.append("hundred")
if m[1]!="0" or m[2]!="0":
c.append("and")
else:
c.pop()
if m[1]!="0":
if int(m[1:]) < 20:
c.append(n1[int(m[1:])-1])
elif 20 <= int(m[1:]):
c.append(n2[int(m[1]) - 2])
if m[2] != "0":
c.append(n1[int(m[2]) - 1])
elif m[2]!="0":
c.append(n1[int(m[2])-1])
return c
d=[]
b = input()[::-1]
for i in range(0,len(b),3):
d.append(b[i:i+3][::-1])
d = d[::-1]
a = d
if len(a)==4:
for i in range(4):
sanwei(a[i])
if i<=2:
c.append(n3[i])
elif len(a)==3:
for i in range(3):
sanwei(a[i])
if i<=1:
c.append(n3[i+1])
elif len(a)==2:
for i in range(2):
sanwei(a[i])
if i<=0:
c.append(n3[i+2])
elif len(a)==1:
sanwei(a[0])
print(" ".join(c))
纯小白解法,根据例子,一个个找漏洞解的。