Python 练习 人民币金额打印
来源:互联网 发布:弹弹123网络连接错误 编辑:程序博客网 时间:2024/06/05 05:23
http://www.pythontip.com/coding/code_oj_case/16
人民币金额打印
银行在打印票据的时候,常常需要将阿拉伯数字表示的人民币金额转换为大写表示,现在请你来完成这样一个程序。
在中文大写方式中,0到10以及100、1000、10000被依次表示为: 零 壹 贰 叁 肆 伍 陆 柒 捌 玖 拾 佰 仟 万
以下的例子示范了阿拉伯数字到人民币大写的转换规则:
1壹圆
11壹拾壹圆
111壹佰壹拾壹圆
101壹佰零壹圆
-1000负壹仟圆
1234567壹佰贰拾叁万肆仟伍佰陆拾柒圆
现在给你一个整数a(|a|<100000000), 请你打印出人民币大写表示.
例如:a=1
则输出:壹圆
注意:请以Unicode的形式输出答案。提示:所有的中文字符,在代码中直接使用其Unicode的形式即可满足要求,中文的Unicode编码可以通过如下方式获得:u'壹'。
注意:代码无需声明编码!!不要在代码头部声明文件编码,否则会导致语法错误!
Note:数据已于2013-11-19日加强,原来通过的代码可能不能再次通过。
# -*- coding: utf-8 -*-w={7:'仟',6:'佰',5:'拾',4:'万',3:'仟',2:'佰',1:'拾',0:''}d={'0':'零','1':'壹','2':'贰','3':'叁','4':'肆','5':'伍','6':'陆','7':'柒','8':'捌','9':'玖'}def trans(a): b=str(a) c=len(b) #找末尾的非零数 cz=c while b[cz-1]=='0': cz-=1 r='' zflag=0 for i in range(cz): if b[i]!='0':#不是0找到对应的数字单位 r+=(d[b[i]]+w[c-i-1]) zflag=0 else: if b[i]=='0'and zflag==0: r+=d[b[i]] zflag=1 return ra=1123004if a<0: ans+='负'a=abs(a)a1=a//10000a2=a%10000print a1,a2ans=''if a1>0: ans+=trans(a1)+'万'if a1>0and a2<1000 and a2>0: ans+='零'if a2>0: ans+=trans(a2)ans+='圆'print ans
阅读全文
0 0
- Python 练习 人民币金额打印
- Python入门练习0009:人民币金额打印
- 人民币金额打印
- 人民币金额打印
- 人民币金额打印
- 人民币金额大小写转换
- 人民币大写金额函数
- 转换人民币大小金额
- 转换人民币大小金额
- 人民币大写金额转换
- 人民币金额大写
- 转换人民币大小金额
- 转换人民币大小金额
- 人民币金额大写
- 人民币金额大写
- 人民币金额大写
- 人民币大小写金额转换
- 人民币金额大写
- timezone path
- java中,自定义注解拦截器来实现,在需要的拦截的方法上面加上一个注解@AccessRequired
- 入门级----需求的分析以及测试用例的设计与编写
- NIO详解一
- 安卓学习记录——(2.界面布局)
- Python 练习 人民币金额打印
- sphinx php扩展安装
- JavaScript闭包常见错误:在循环中创建闭包
- CSDN-文件搜索
- JavaScript同步加载和异步加载
- C语言之各种运算符
- NIO详解二
- LevelDbHelper.cs
- Linux程序分析工具:ldd和nm