[PTA]7-23 币值转换
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 币值转换相关推荐
- PTA python 币值转换 ,逆序数
7-3 币值转换 (30 分) 人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换, ...
- 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 龟兔赛跑 乌龟与兔子进行赛跑, ...
- [PTA] 7-23 币值转换(20 分)
7-23 币值转换(20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简 ...
- 7-23 币值转换(转)
太顶了,是我脑子没长好. 转需 PTA上基础题库暂时尚未完成,完成后进行整合. 原创 7-23 币值转换(20 分) 2018-08-02 16:32:12 yubai258 阅读数 821 版权声明 ...
- 2019寒假作业二:PTA7-1币值转换
7-1 币值转换 (20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简 ...
- 7-168 币值转换 (20 分)
7-168 币值转换 (20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为 ...
- 寒假作业2:币值转换
寒假作业2:币值转换 #寒假作业2:币值转换 7-1 币值转换 (20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成&q ...
- golang string转int8_Go教程:23 string转换int类型方法对比
Go教程:23 string转换int类型方法对比 Go语言时一个强类型的语言,但是强类型的语言有也强类型的语言的烦恼.这个烦恼就是类型转换, 接下来我们就讲解一下怎么把 string 类型变量转换成 ...
- 演示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 ...
- java币值转换_币值转换
币值转换 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简化输出,用小写英文字母 ...
最新文章
- 拿transformer做E2E全景分割,这个通用框架霸榜挑战赛,南大、港大联合提出
- 在python面向对象编程中、属性分为_Python-面向对象编程(1.概述)
- dhl:mvc用户登陆身份验证
- 7 CO配置-控制-一般控制-维护版本
- ctdb main loop
- python中concat的用法_python pandas concat用法及代码示例
- android通话流程浅析RIL层
- 搜索引擎只能抓取html文件,为什么有些明明存在的网页不能被搜索到?
- 权限丢失_应用好深圳RFID智能档案密集架,杜绝档案丢失!
- sp_help 查看表结构 alter column修改字段长度
- Hibernate jar问题
- 电力系统及其自动化毕业论文题目【精选】
- Typora结合LightBox放大查看图片
- 实体门店营销,抽奖系统为何独占鳌头
- 基于STM32F407四旋翼无人机---MS5611气压计(三)
- 329 矩阵中的最长递增路径
- 嵌入式行业真的没有前途吗?
- 包裹侠查快递单号_包裹侠快递查询
- 免费学习机器学习和深度学习的源码、学习笔记和框架分享
- rust超低配置补丁_Rust新增存在类型支持
热门文章
- Vue DatePicker和不可用
- 聊聊FFT(二)----幅值、模值与分辨率
- java获取微信公总号推送的所有信息的url,用于爬取微信推送的文章内容
- 蚂蚁金服Java岗三面(电面.现场面.HR面)经验总结和分享
- word文档中指定页加水印_如何在Microsoft Word文档中使用水印
- 消防电气IP防护等级如何定义和解读
- Oracle授权普通用户查看执行计划
- ⅠB2期和ⅡA2期子宫颈腺癌及腺鳞癌新辅助化疗后手术治疗疗效观察
- python操作excel----xlwt(写)
- linux运维培训时间,linux运维培训班跟自学相比那个好?