文章目录

  • 1. 题目描述
  • 2. 实现代码

1. 题目描述

题目描述

考试题目和要点:

1、中文大写金额数字前应标明“人民币”字样。中文大写金额数字应用壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿、元、角、分、零、整等字样填写。(30分)

2、中文大写金额数字到“元”为止的,在“元”之后,应写“整字,如¥ 532.00应写成“人民币伍佰叁拾贰元整”。在”角“和”分“后面不写”整字。(30分)

3、阿拉伯数字中间有“0”时,中文大写要写“零”字,阿拉伯数字中间连续有几个“0”时,中文大写金额中间只写一个“零”字,如¥6007.14,应写成“人民币陆仟零柒元壹角肆分“。(

知识点 字符串
运行时间限制 10M
内存限制 128
输入

输入一个doulbe数
输出

输出人民币格式

注:

下面乱码为:

人民币拾伍万壹仟壹佰贰拾壹元壹角伍分

人民币拾伍万壹仟壹佰贰拾壹元壹角伍分
样例输入 151121.15
样例输出 人民币拾伍万壹仟壹佰贰拾壹元壹角伍分

2. 实现代码

该题不算很难,但是很麻烦;下面是基于C++实现的
有个java实现的比较精妙:传送门
C++的没有找到

#include <iostream>
#include <string>
#include <sstream>using namespace std;
string ProcessInt(int n);//
void ProcessW(string ZS, string XS,int i,bool isb);//处理整数
void ProcessXS(string XS, int i);//处理小数void ProcessXS(string XS, int i)
{switch (i) //只存在 角 分 和 整的情况{case 2:if(XS[0] == '0' && XS[1] == '0'){cout<<"整";break;}else{cout<<ProcessInt(XS[0]-'0');cout<<"角";ProcessXS(XS.substr(1,1), 1);}break; case 1:if(XS[0] == '0'){cout<<"整";break;}else   {cout<<ProcessInt(XS[0]-'0');cout<<"分";}break;defaut:break;}
}void ProcessW(string ZS, string XS,int i,bool isb)
{if(i==0 && isb){cout<<"元";ProcessXS(XS ,XS.size()>2?2:XS.size());}else if (ZS.size()>8 )//亿{ProcessW(ZS.substr(0,ZS.size()-8),XS , ZS.size()-8,false);cout<<"亿";ProcessW(ZS.substr(ZS.size()-8,8),XS ,8,false);}elseif(ZS. size()>4 ){ProcessW(ZS.substr(0,ZS.size()-4),XS , ZS.size()-4,false);cout<<"万";ProcessW(ZS.substr(ZS.size()-4,4),XS ,4,true);//处理完 4位以上的 就只有四位一下的}elseif(ZS.size() == 4){cout<<ProcessInt((ZS[0]-'0'));//char转intcout<<"仟";ProcessW(ZS.substr(ZS.size()-3,3),XS , 3,isb);}else if(ZS.size() == 3){cout<<ProcessInt((ZS[0]-'0'));//char转intcout<<"佰";ProcessW(ZS.substr(1,2),XS , 2,isb);}else if(ZS.size() == 2){if(ZS[0] != '1')cout<<ProcessInt((ZS[0]-'0'));//char转intcout<<"拾";ProcessW(ZS.substr(1,2),XS , 1,isb);}else if(ZS.size()  == 1){cout<<ProcessInt(stoi(ZS));if(isb)ProcessW("0",XS , 0,isb);}}void tran(double s)
{/* stringstream ss;ss << s;string str ;ss >> str; */string str;str = to_string(s);string ZS, XS;for (int i = 0; i<str.size();i++){if (str[i]=='.'){ZS = str.substr(0, i);XS = str.substr(i+1, str.size()-i);break;}}if(ZS.size() == 1 && ZS[0] == '0')//处理开头就是0的情况{ProcessXS(XS,XS.size ()>2?2:XS.size ());}else{ProcessW(ZS,XS,ZS.size (),ZS.size ()>4?false:true) ;}//cout<<ZS<<endl ;}string ProcessInt(int n)
{switch (n){case 0:return "零";case 1:return "壹";case 2:return "贰";    case 3:return "叁";case 4:return "肆";case 5:return "伍";case 6:return "陆";case 7:return "柒";case 8:return "捌";case 9:return "玖";default:break;}return "";
}int main()
{double sss;cin>>sss;cout<<"人民币";tran(sss);return 0;
}

leetcode(15):华为HJ95||人民币转换相关推荐

  1. 华为od机考真题-HJ95人民币转换(较难)

    # 首先分为 整数部分 和 小数部分 # 整数部分 又可以每四位拆分,每四位 都可以按 个十百千去计算,需要特别注意 万万 需要转为 亿 # 没有给定数值范围,可以先按最大 千万亿 设计dct = [ ...

  2. HJ95 人民币转换

    描述 考试题目和要点:1.中文大写金额数字前应标明"人民币"字样.中文大写金额数字应用壹.贰.叁.肆.伍.陆.柒.捌.玖.拾.佰.仟.万.亿.元.角.分.零.整等字样填写.2.中文 ...

  3. HJ95.人民币转换

    题目: 考试题目和要点: 1.中文大写金额数字前应标明"人民币"字样.中文大写金额数字应用壹.贰.叁.肆.伍.陆.柒.捌.玖.拾.佰.仟.万.亿.元.角.分.零.整等字样填写. 2 ...

  4. 华为pat地址转换,以及内网web服务器发布

    实验名称:华为pat地址转换,以及内网web服务器发布 实验拓扑图: 3. 实验目的 : 1.使内网通过pat转化出去上外网 2.使用静态pat做端口映射,发布web服务器 3.配置交换机远程登录 4 ...

  5. python中用函数货币转换代码_python将人民币转换大写的脚本代码

    代码如下: def Num2MoneyFormat( change_number ): """ .转换数字为大写货币格式( format_word.__len__() – ...

  6. 人民币换算美元java计算_美元和人民币换算(人民币转换美元计算)

    货币兑换1人民币元=0.1626美元 1美元=6.1500人民币元 兑换为转换 数据仅供参考,交易时以银行柜台成交价为准 更新时间:2014-03-16 14:40 外币换人民币的 看最新现. 1美元 ...

  7. c语言美元转换人民币的程序,【其它】编程题: 1.编写一个人民币和美元的双向汇率转换程序,实现美元和人民币转换,汇率:1美元=6.92人民币...

    [其它]编程题: 1.编写一个人民币和美元的双向汇率转换程序,实现美元和人民币转换,汇率:1美元=6.92人民币 更多相关问题 患者身热,微恶风寒,少汗,头昏,心烦,口干,干咳少痰,舌红少苔,脉细数. ...

  8. 人民币转换(阿拉伯数字转为中文大写的人民币格式)

    人民币转换 1.中文大写金额数字前应标明"人民币"字样.中文大写金额数字应用壹.贰.叁.肆.伍.陆.柒.捌.玖.拾.佰.仟.万.亿.元.角.分.零.整等字样填写. 2.中文大写金额 ...

  9. 华为ensp nat转换实验

    实验拓扑 下载链接 华为ensp nat转换实验 图 1-1 注:如无特别说明,同一网段中,IP 地址的主机位为其设备编号,如 R3 的 g0/0 接口若在 192.168.1.0/24 网段,则其 ...

最新文章

  1. 一文透彻详解卡尔曼滤波原理
  2. 2020年智能家居市场规模将达到3576亿元
  3. jsp中获取不到后台请求域中的值
  4. 单片机实现环形队列_稀疏数组和队列(二)
  5. 论证通过!依托顶尖985大学,争创国家实验室!
  6. 苹果XR信号差,可否要求苹果公司召回?
  7. Open3d之交互式可视化
  8. qt实现简易时钟(Qpaintevent),可以当作桌面摆件
  9. draw什么计算机软件,[计算机软件及应用]化学绘图软件ChemDraw使用简介.ppt
  10. codeforces 914 D Bash and a Tough Math Puzzle
  11. Word文档编号工具,Word标题,图、表手动编号工具
  12. 简单易懂的现代魔法……原来是C++啊
  13. 网页原型设计工具设计_网页设计工具从下往下
  14. 微信小程序:全新动态视频壁纸下载支持多种分类短视频另外也有静态壁纸
  15. PTA航空公司VIP客户查询c++版——山东科技大学
  16. 紫光服务器型号,紫光新华三全新HPE Gen10系列服务器响彻“云”端
  17. 优质的计算机专业书籍有哪些?
  18. 呼吁重视孩子写字姿势
  19. 阿里CEO盒马内部演讲实录:跑得久才是最关键的
  20. mysql 查询最接近某时间的数据

热门文章

  1. Lined List
  2. Codeforces 30 E. Tricky and Cleve Password
  3. Linux 基本管理命令(系统管理,用户管理,进程管理)
  4. 实验吧 天下武功唯快不破
  5. 韩国国会表决通过中韩自贸协定批准案
  6. HDU5266-pog loves szh III
  7. 27岁年入千万的李佳琦:以为钱很好赚,是年轻人的最大错觉
  8. web前端开发(包括任何行业)要不要找个师傅带?
  9. 闽高校计算机二级c语言模拟器,闽高校计算机二级C语言练习题.doc
  10. 修改linux默认登录账号是root