获得用户输入的一个正整数,输出该数字对应的中文字符表示。
时间: 2024-06-10 20:07:42 浏览: 124
可以的,以下是代码实现:
```
num_map = {1:'一',2:'二',3:'三',4:'四',5:'五',6:'六',7:'七',8:'八',9:'九',0:''}
unit_map = {0:'', 1:'十', 2:'百', 3:'千'}
def int2chinese(num:int) -> str:
if num==0:
return '零'
s = str(num)[::-1]
parts = []
for i in range(0, len(s), 4):
part = ''
for j in range(4):
if i+j==len(s):
break
if j==0 and s[i+j]=='0':
part += '零'
if s[i+j] != '0':
part += num_map[int(s[i+j])] + unit_map[j]
parts.append(part)
if len(parts) >= 2 and parts[-1]=='':
parts.pop()
result = ''.join(reversed(parts))
return result
```
如果输入 123456789,则输出为:"一亿二千三百四十五万六千七百八十九",
如果输入 100,则输出为:"一百",
如果输入 20002,则输出为:"二万零二",
如果输入 10000001,则输出为:"一千万零一"。