题解 | #人民币转换#
人民币转换
https://www.nowcoder.com/practice/00ffd656b9604d1998e966d555005a4b
dic = { 1: "壹", 2: "贰", 3: "叁", 4: "肆", 5: "伍", 6: "陆", 7: "柒", 8: "捌", 9: "玖", 10: "拾", 11: "拾壹", 12: "拾贰", 13: "拾叁", 14: "拾肆", 15: "拾伍", 16: "拾陆", 17: "拾柒", 18: "拾捌", 19: "拾玖", } def fun(n, s=""): if n < 20: ## 个位 s += dic[n] elif n < 100: # 几拾几 ## 十位 s += dic[n // 10] + "拾" # n//10表示10的倍数,dic[n//10]表示这个数字在字典中对应的汉字 if n % 10 != 0: # 注意这里,测试880.23这个数据 s += dic[n % 10] elif n < 1000: # 百位 # 800 808 880 s += dic[n // 100] + "佰" if n % 100 != 0: if str(n)[-2] == "0": s += "零" s += fun(n % 100) elif n < 10000: # 千位 # 8888 8088 8008 8000 s += dic[n // 1000] + "仟" if n % 1000 != 0: if str(n)[-3] == "0": s += "零" s += fun(n % 1000) elif n < 100000000: # 万位 s += fun(n // 10000) + "万" # 注意这里是直接调用函数而不是读字典了,读作,多少多少万 if n % 10000 != 0: if str(n)[-4] == "0": # 注意这里是千位为0 s += "零" s += fun(n % 10000) else: # 亿 s += dic[n // 100000000] + "亿" if n % 100000000 != 0: if str(n)[-8] == "0": s += "零" s += fun(n % 100000000) return s n, n2 = input().split(".") n = int(n) s = "人民币" # xx元xx分xx角 if n > 0: # 处理xx元 s += fun(n) + "元" if n2 == "00": # 0角0分 s += "整" if n2[0] != "0": s += dic[int(n2[0])] + "角" # xx角 if n2[1] != "0": s += dic[int(n2[1])] + "分" # xx分 print(s)