Peter在学英文时刚好学到了序数词,他想把一个数字改成序数词的形式,请你帮帮他吧。输入一个数字n,输出其序数词,如1st,2nd等,0<n<1000。
时间: 2024-09-29 17:11:37 浏览: 18
这是一个简单的程序,通常在编程中我们会创建一个字典映射从0到999的每个数字对应其序数词形式。以下是使用Python的一个简单实现:
```python
def number_to_ordinal(n):
# 定义一个字典,存储数字及其对应的序数词
ordinal_dict = {
0: 'th', 1: 'st', 2: 'nd', 3: 'rd',
4: 'th', 5: 'th', 6: 'th', 7: 'th',
8: 'th', 9: 'th', 10: 'th', 11: 'th', 12: 'th',
13: 'th', 14: 'teenth', 15: 'fifteen', 16: 'sixteen',
17: 'seventeen', 18: 'eighteen', 19: 'nineteen',
20: 'twentieth', 30: 'thirtieth', 40: 'fortieth',
50: 'fiftieth', 60: 'sixtieth', 70: 'seventieth',
80: 'eightieth', 90: 'ninetieth'
}
# 根据十位、个位数组合生成序数词
if n < 10:
return str(n) + ordinal_dict[n]
elif 10 <= n < 20:
return str(n) + 'th'
else:
tens, ones = divmod(n, 10)
if ones != 0:
return f"{tens}{ordinal_dict[ones]}"
else:
return f"{tens}{'ts'[tens - 1]}" + ordinal_dict[10] # 处理11到19的情况
# 测试函数
print(number_to_ordinal(1)) # 输出 '1st'
print(number_to_ordinal(23)) # 输出 '23rd'
print(number_to_ordinal(100)) # 输出 '100th'