7-168 币值转换 (20 分)

输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“cWdQbBai”元。

输入格式:

输入在一行中给出一个不超过9位的非负整数。

输出格式:

在一行中输出转换后的结果。注意“零”的用法必须符合中文习惯。

输入样例1:

813227345

输出样例1:

iYbQdBcScWhQdBeSf

输入样例2:

6900

输出样例2:

gQjB
#include<iostream>
//①从count开始后缀为0,不发声(但要警惕类似130/0000的,不要忘记补上“万”)
//②0只发零不带权值
//③中间连续的0只发一个音
//④不要忘记最小的个位数0
using namespace std;
int main (void){int n;cin>>n;if(n==0){cout<<'a';return 0;}int s[9];for(int i=0;i<9;i++)s[i]=-1;//数组统一赋初值int flag=1;//标记末尾的0int count=8;//放入数组for(int i=8;n;i--){s[i]=n%10;if(s[i]!=0&&flag==1){count=i;flag=0;}//从后往前第一次出现不是0的位n=n/10;}int flag0=1;//检测是否有多个0for(int i=0;i<=count;i++){if(s[i]==-1)continue;else if(s[i]==0&&i==4&&(s[1]>0||s[2]>0||s[3]>0)){cout<<'W';continue;}//是0的情况,且是万位,而且不是类似100000001的情况,此时不发0只发Wswitch(s[i]){case 0:if(flag0)cout<<'a';break;case 1:cout<<'b';break;case 2:cout<<'c';break;case 3:cout<<'d';break;case 4:cout<<'e';break;case 5:cout<<'f';break;case 6:cout<<'g';break;case 7:cout<<'h';break;case 8:cout<<'i';break;case 9:cout<<'j';break;default:break;}if(s[i]!=0)//零处除了万其他时候权值不发音switch(i){case 0:cout<<'Y';break;case 1:cout<<'Q';break;case 2:cout<<'B';break;case 3:cout<<'S';break;case 4:cout<<'W';break;case 5:cout<<'Q';break;case 6:cout<<'B';break;case 7:cout<<'S';break;default:break;}else if(s[i]==0)flag0=0;//如果这次是0,那么下次遇到零就不发音}if(count>0&&count<4)cout<<'W';//最后给因为后缀是0而忽略万的数补上W
}

7-168 币值转换 (20 分)相关推荐

  1. 7-83 币值转换 (20 分)

    7-83 币值转换 (20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了 ...

  2. 7-83 币值转换 (20分)

    整了3个小时终于做出来了(我是菜鸡,大佬们别喷),初始的时候解题方向整错了:我把单位和数字放在一起输出了,导致以我现在能力无法正确表达出汉字的习惯.意识到可能需要重写代码,就看了下网上的答案,大体思路 ...

  3. 7-23 币值转换 (20分)

    7-23 币值转换 (20分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简 ...

  4. 【Java】7-23 币值转换 (20 分)

    7-23 币值转换 (20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了 ...

  5. 7-43 币值转换 (20分)_「篮球看吧」40岁了!生涯25年!还狂砍33分+联赛得分王,这他么是人吗...

    35岁的詹姆斯仍处在巅峰,让无数人惊讶.40岁的时候詹皇会是什么样子?现在詹皇有了一个参照样本,那就是40岁的斯科拉.这位阿根廷球星在迈入四旬依然能称霸欧洲顶级联赛,目前在意大利甲级篮球联赛得分榜排名 ...

  6. java币值转换_-PAT-java-5-23 币值转换 (20分)

    输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简化输出,用小写英文字母a-j顺序 ...

  7. PTA 7-43 币值转换 (20 分)

    题目 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简化输出,用小写英文字母a- ...

  8. 7-4 币值转换 (20分)

    输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简化输出,用小写英文字母a-j顺序 ...

  9. 币值转换 (20分)

    输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简化输出,用小写英文字母a-j顺序 ...

最新文章

  1. StringUtils
  2. MySQL安装使用的2个问题
  3. “Query结构化分析及槽位填充” byte dance NLP lambda在线讲的不错的
  4. Linux下安装PCRE
  5. UA MATH566 统计理论 概念与定理总结
  6. linux之heartbeat高可用的简单配置
  7. join和group by能一块用吗_冷冻一下地球能缓解温室效应吗?| No.171
  8. python改文件名_python批量修改文件名、批量修改xml文件的path和filename
  9. 线性结构 —— 前缀和
  10. Unity3D 代码优化
  11. 《排序算法篇》快排的递归与非递归
  12. IOS 出现不支持的 URL
  13. ddos攻击网站原理,遭受ddos攻击该如何处理进行防御?
  14. SLAM学习——李群与李代数
  15. 人才测评技术与应用【2】
  16. 社会各界送别“国医大师”邓铁涛
  17. Java开发买低压本还是标压本_别看游戏本不用低压CPU,其实低压CPU成本比标压CPU更高!...
  18. 婴儿用品的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. Kony集成百度推送-IOS
  20. 大学课程能给我们带来什么?

热门文章

  1. ESXI 6.7安装并部署主机
  2. 机械硬盘 运行 linux 很慢,如果读写硬盘操作有问题,假死机、很慢等,就检查一下硬盘坏道...
  3. esp32查询剩余内存_SQL 查询语句先执行 SELECT?兄弟你认真的么?
  4. vue中使用高德地图 amap--基础使用方法
  5. unknow ’query_cache_size’报错的解决方法吗
  6. 基于jQuery日历插件制作日历
  7. CI框架去除index.php
  8. http之SessionCookie
  9. Delphi调用Android的.so文件(转)
  10. PHP超级全局变量总结