人民币金额打印
来源:互联网 发布:apache 查看编译参数 编辑:程序博客网 时间:2024/06/05 07:55
描述:之前的问题不过是因为 1011 有问题,输出零后没有及时修正状态,导致后面多输出零银行在打印票据的时候,常常需要将阿拉伯数字表示的人民币金额转换为大写表示,现在请你来完成这样一个程序。
在中文大写方式中,0到10以及100、1000、10000被依次表示为: 零 壹 贰 叁 肆 伍 陆 柒 捌 玖 拾 佰 仟 万
以下的例子示范了阿拉伯数字到人民币大写的转换规则:
1壹圆
11壹拾壹圆
111壹佰壹拾壹圆
101壹佰零壹圆
-1000负壹仟圆
1234567壹佰贰拾叁万肆仟伍佰陆拾柒圆
现在给你一个整数a(|a|<100000000), 请你打印出人民币大写表示.
例如:a=1
则输出:壹圆
注意:请以Unicode的形式输出答案。提示:所有的中文字符,在代码中直接使用其Unicode的形式即可满足要求,中文的Unicode编码可以通过如下方式获得:u'壹'。
注意:代码无需声明编码!!不要在代码头部声明文件编码,否则会导致语法错误!
Note:数据已于2013-11-19日加强,原来通过的代码可能不能再次通过。
预期:壹仟零壹拾壹圆
实际:壹仟零壹拾零壹圆
from __future__ import print_functiona=1011all_str = ""if a < 0: a = -a all_str = u"负"else: all_str = ""chinese_num_dic = [u"零",u"壹",u"贰",u"叁",u"肆",u"伍",u"陆",u"柒",u"捌",u"玖"]chinese_radix_list = [u"圆",u"拾",u"佰",u'仟',u"万",u"拾",u"佰",u'仟',u"亿"]a = str(a)a_len = len(a)zero_flag = 0if a != '0': for item in a: num = int(item) if num > 0 : if zero_flag == 1: all_str += u"零" zero_flag = 0 #问题所在 all_str += chinese_num_dic[int(item)] all_str +=chinese_radix_list[a_len-1] else: zero_flag = 1 if chinese_radix_list[a_len-1] == u'亿' or chinese_radix_list[a_len-1] == u'万' or chinese_radix_list[a_len-1] == u'圆': zero_flag = 0 all_str += chinese_radix_list[a_len-1] a_len -=1else: all_str = u'零圆'print(all_str,end="")
阅读全文
0 0
- 人民币金额打印
- 人民币金额打印
- 人民币金额打印
- Python 练习 人民币金额打印
- Python入门练习0009:人民币金额打印
- 人民币金额大小写转换
- 人民币大写金额函数
- 转换人民币大小金额
- 转换人民币大小金额
- 人民币大写金额转换
- 人民币金额大写
- 转换人民币大小金额
- 转换人民币大小金额
- 人民币金额大写
- 人民币金额大写
- 人民币金额大写
- 人民币大小写金额转换
- 人民币金额大写
- 利用Gson 是序列化Json可以自定义key值的几种方案
- Unity3d easytouch计算摇杆旋转角度以及摇杆八方向控制角色
- git命令
- OpenStack Kilo DVR Router Remove GW
- vs调用MATLAB生成的dll文件混编
- 人民币金额打印
- Java类的访问权限关键字
- 最小整数
- Android 多点触摸协议(Multi-touch Protocol)
- Java Web系列-任务调度SpringTask
- maven的配置和一些依赖
- 签到
- 复变函数-第一章-复数与复变函数
- KMP模板(附练习题)