Spring-_-Bear 的 CSDN 博客导航


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

输入格式:

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

输出格式:

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

输入样例1:

813227345

输出样例1:

iYbQdBcScWhQdBeSf

输入样例2:

6900

输出样例2:

gQjB

来源:

来源:PTA | 程序设计类实验辅助教学平台
链接:https://pintia.cn/problem-sets/14/exam/problems/803

提交:

题解:

#include <stdio.h>int main() {int money;scanf("%d", &money);// 币值为 0 的情况特殊处理if (money == 0) {printf("a");return 0;}/** 获取 money 的各位数字并依次存进 digits 数组中,* 如 money = 813227345 八亿一千三百二十二万七千三百四十五,则 digits[10] = {5, 4, 3, 7, 2, 2, 3, 1, 8}*/int len = 0;int digits[9] = {0};while (money) {digits[len++] = money % 10;money /= 10;}/** 币值单位:S、B、Q、W、Y 分别代表拾、百、仟、万、亿,* 巧妙设计其与 digits 数组的关系,不难看出当逆序遍历 digits 数组时,digits 数组的下标恰与 currencyUnit 单位符合*  digits[10]    =     {5,   4,   3,   7,   2,   2,   3,   1,   8}  | 813227345*  currencyUnit[9] = {'\0', 'S', 'B', 'Q', 'W', 'S', 'B', 'Q', 'Y'} | 八亿一千三百二十二万七千三百四十五*/char currencyUnit[9] = {'\0', 'S', 'B', 'Q', 'W', 'S', 'B', 'Q', 'Y'};// 从 digits 数组尾往头遍历,输出对应的人民币值for (int i = len - 1; i >= 0; i--) {if (digits[i]) {// 字母 a-j 对应数字 0-9,此处输出 money 值及单位,巧用下标 i 与币值单位数组 currencyUnit 的对应关系printf("%c%c", digits[i] + 'a', currencyUnit[i]);} else if (i == 4) {// 判断是否需要输出币值单位万,当且仅当 i == 4 并且存在十万 | 百万 | 千万时才输出 Wif (digits[5] || digits[6] || digits[7]) {printf("W");}} else if (i - 1 >= 0 && digits[i - 1]) {/** 题目要求:“零” 的用法必须符合中文习惯,* 向前看一位判断是否输出当前 0 对应的 a,当且仅当当前 0 不是 money 的末位数字且 0 的前一个数字不为 0 时才输出 a,* 如 6900(六千九百 gQjB digits = {0, 0, 9, 6, 0...}) 不需要输出 0,* 而 6090(六千零九十 gQajS digits = {0, 9, 0, 6, 0...})仅需要输出 6 和 9 中间的 0*/printf("a");}}return 0;
}

[PTA]7-23 币值转换相关推荐

  1. PTA python 币值转换 ,逆序数

    7-3 币值转换 (30 分) 人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬ ...

  2. PTA(02)典例详解(7-48 龟兔赛跑7-49 币值转换7-51 念数字7-53 抓老鼠啊~亏了还是赚了?7-56 谁先倒7-58 输出GPLT7-60 福到了)

    目录 7-48 龟兔赛跑 7-49 币值转换 7-51 念数字 7-53 抓老鼠啊~亏了还是赚了? 7-56 谁先倒 7-58 输出GPLT 7-60 福到了 7-48 龟兔赛跑 乌龟与兔子进行赛跑, ...

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

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

  4. 7-23 币值转换(转)

    太顶了,是我脑子没长好. 转需 PTA上基础题库暂时尚未完成,完成后进行整合. 原创 7-23 币值转换(20 分) 2018-08-02 16:32:12 yubai258 阅读数 821 版权声明 ...

  5. 2019寒假作业二:PTA7-1币值转换

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

  6. 7-168 币值转换 (20 分)

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

  7. 寒假作业2:币值转换

    寒假作业2:币值转换 #寒假作业2:币值转换 7-1 币值转换 (20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成&q ...

  8. golang string转int8_Go教程:23 string转换int类型方法对比

    Go教程:23 string转换int类型方法对比 Go语言时一个强类型的语言,但是强类型的语言有也强类型的语言的烦恼.这个烦恼就是类型转换, 接下来我们就讲解一下怎么把 string 类型变量转换成 ...

  9. 演示4:python的币值转换-含tkinter

    演示4:python的币值转换-含tkinter 1 说明 2 知识点 2.1 汇率与币种 2.2 元组 2.3 if 的用法 2.3.1 if 的单独用法 2.3.2 if else 的组合用法 2 ...

  10. java币值转换_币值转换

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

最新文章

  1. 拿transformer做E2E全景分割,这个通用框架霸榜挑战赛,南大、港大联合提出
  2. 在python面向对象编程中、属性分为_Python-面向对象编程(1.概述)
  3. dhl:mvc用户登陆身份验证
  4. 7 CO配置-控制-一般控制-维护版本
  5. ctdb main loop
  6. python中concat的用法_python pandas concat用法及代码示例
  7. android通话流程浅析RIL层
  8. 搜索引擎只能抓取html文件,为什么有些明明存在的网页不能被搜索到?
  9. 权限丢失_应用好深圳RFID智能档案密集架,杜绝档案丢失!
  10. sp_help 查看表结构 alter column修改字段长度
  11. Hibernate jar问题
  12. 电力系统及其自动化毕业论文题目【精选】
  13. Typora结合LightBox放大查看图片
  14. 实体门店营销,抽奖系统为何独占鳌头
  15. 基于STM32F407四旋翼无人机---MS5611气压计(三)
  16. 329 矩阵中的最长递增路径
  17. 嵌入式行业真的没有前途吗?
  18. 包裹侠查快递单号_包裹侠快递查询
  19. 免费学习机器学习和深度学习的源码、学习笔记和框架分享
  20. rust超低配置补丁_Rust新增存在类型支持

热门文章

  1. Vue DatePicker和不可用
  2. 聊聊FFT(二)----幅值、模值与分辨率
  3. java获取微信公总号推送的所有信息的url,用于爬取微信推送的文章内容
  4. 蚂蚁金服Java岗三面(电面.现场面.HR面)经验总结和分享
  5. word文档中指定页加水印_如何在Microsoft Word文档中使用水印
  6. 消防电气IP防护等级如何定义和解读
  7. Oracle授权普通用户查看执行计划
  8. ⅠB2期和ⅡA2期子宫颈腺癌及腺鳞癌新辅助化疗后手术治疗疗效观察
  9. python操作excel----xlwt(写)
  10. linux运维培训时间,linux运维培训班跟自学相比那个好?