题解 | #学英语#
学英语
http://www.nowcoder.com/practice/1364723563ab43c99f3d38b5abef83bc
讲道理,我觉得我这个方法很拉胯
def get_twenty(x):
if x % 10 == 0 and x != 10:
return dict_2[str(x)[0]]
elif x > 20:
y = str(x)[0]
z = str(x)[1:]
return dict_2[y] + ' ' + dict_1[str(int(z))]
return dict_1[str(x)]
def get_hundred(x):
if x <= 20:
return get_twenty(x)
y = str(x)[0]
z = str(x)[1:]
if x % 10 == 0 and x < 100:
return dict_2[str(x)[0]]
elif x % 100 == 0 and x != 100:
return f'{get_twenty(y)} hundred'
elif x == 100:
return 'one hundred'
elif x == 1000:
return 'one thousand'
elif x > 100:
return dict_1[y] + ' hundred and ' + get_twenty(int(z))
elif 20 < x < 100:
return dict_2[y] + ' ' + get_twenty(int(z))
else:
return dict_1[y] + get_twenty(int(z))
def get_thousand(x):
y = str(x)[0:-3]
z = str(x)[-3:]
if x % 1000 == 0:
return f'{get_twenty(y)} thousand'
elif x == 10000:
return 'ten thousand'
else:
return get_hundred(int(y)) + ' thousand ' + get_hundred(int(z))
def get_million(x):
y = str(x)[0:-6]
z = str(x)[-6:]
if x % 1000000 == 0:
return f'{get_twenty(y)} million'
else:
return get_hundred(int(y)) + ' million ' + get_thousand(int(z))
while True:
try:
input_res = int(input())
dict_1 = {
'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',
'20': 'twenty',
}
dict_2 = {
'2': 'twenty',
'3': 'thirty',
'4': 'forty',
'5': 'fifty',
'6': 'sixty',
'7': 'seventy',
'8': 'eighty',
'9': 'ninety',
}
if input_res <= 20:
res = get_twenty(input_res)
elif 20 < input_res <= 100:
res = get_hundred(input_res)
elif 100 < input_res <= 1000:
res = get_hundred(input_res)
elif 1000 < input_res < 1000000:
res = get_thousand(input_res)
elif 1000000 <= input_res:
res = get_million(input_res)
else:
res = ''
print(res)
except EOFError:
break
海康威视公司福利 1134人发布
查看23道真题和解析