牛客华为机试HJ95
作者:互联网
1. 问题描述
2. Solution
import sys
if sys.platform != "linux":
sys.stdin = open("input/HJ95.txt")
nums = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']
"""
拾、佰、仟、万、亿、元、角、分
3 2315 1121 .15
人民币
叁 亿
贰仟叁佰壹拾伍 万
壹仟壹佰贰拾壹 元
壹角 伍分
1 0012 .02
叁万
零
拾贰
15 1121 .15
人民币
拾伍万
壹仟壹佰贰拾壹元
壹角伍分
人民币叁仟零拾万伍仟零元整
人民币叁仟零拾万伍仟元整
"""
def do_part(n, res: list):
a = n % 10
b = (n // 10) % 10
c = (n // 100) % 10
d = n // 1000
if d != 0:
res.append(nums[d])
res.append('仟')
elif res[-1] != "人民币":
res.append('零')
if c != 0:
res.append(nums[c])
res.append('佰')
elif d != 0 and c == 0 and (b != 0 or a != 0):
res.append('零')
if b != 0:
if b != 1 and res[-1] != "人民币":
res.append(nums[b])
res.append('拾')
elif d != 0 and c != 0 and b == 0:
res.append('零')
if a != 0:
res.append(nums[a])
def do_after_dot(n, res: list):
a = n % 10
b = n // 10
if b != 0:
res.append(nums[b])
res.append('角')
if a != 0:
res.append(nums[a])
res.append('分')
def solve(s):
before_dot, after_dot = list(map(int, s.split(".")))
res = ['人民币']
a = before_dot % 10000 # 元部分
b = (before_dot // 10000) % 10000 # 万部分
c = before_dot // 100000000 # 亿部分
if c > 0:
do_part(c, res)
res.append('亿')
if b > 0:
do_part(b, res)
res.append('万')
if a > 0:
do_part(a, res)
res.append('元')
if after_dot == 0:
res.append('整')
else:
do_after_dot(after_dot, res)
print("".join(res))
for line in sys.stdin:
solve(line.strip())
标签:10,do,nums,res,牛客,append,机试,HJ95,dot 来源: https://www.cnblogs.com/junstat/p/16177319.html