7-23 币值转换 (20 分)

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

输入格式:

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

输出格式:

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

输入样例1:

813227345

输出样例1:

iYbQdBcScWhQdBeSf

输入样例2:

6900

输出样例2:

gQjB

Java 代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class Main {public static int[] split(int num) {int[] array = new int[3];for (int i = 0; i < array.length; i++) {array[i] = num % 10000;num /= 10000;}return array;}public static void main(String[] args) throws NumberFormatException, IOException {BufferedReader in = new BufferedReader(new InputStreamReader(System.in));int num = Integer.parseInt(in.readLine());StringBuilder sb = new StringBuilder();int[] array = split(num);String[] unit = { "", "S", "B", "Q" };// 用于输出每千位中间0,并且只输出一次boolean f = true;for (int i = 0; i < 3; i++) {int x = array[i];int idx = 0;// 万位单位和亿位单位if (i == 1 && x > 0) {sb.insert(0, "W");} else if (i == 2 && x > 0) {sb.insert(0, "Y");}int cnt = 0;// 末尾多0的情况,只需要判断最后一位是不是0int end = x % 10;// 每千位小于10的数就不考虑0的输出boolean isLess = x < 10;while (cnt < 4) {char c = (char) (x % 10 + 97);if (f && c == 'a' && i < 2 && end != 0 && !isLess) {sb.insert(0, 'a');f = false;}sb.insert(0, c > 'a' ? c + unit[idx] : "");x /= 10;idx++;cnt++;}}System.out.println(sb.length() > 0 ? sb : 'a');}}

【Java】7-23 币值转换 (20 分)相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. 币值转换 (20分)

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

最新文章

  1. Rancher 2.0 里程碑版本:支持添加自定义节点!
  2. jq php异步上传图片,PHP+Ajax实现图片异步上传预览
  3. idea启动前端vue项目(各种坑)
  4. python题型大全_python进阶:练习题 汇总
  5. C++学习笔记(10)运算符重载,友元函数,友元类
  6. 杭州滨江工作方案:将区块链等产业与“数字滨江”、“数字经济”紧密相连
  7. iOS 时间校准解决方案
  8. java----内省
  9. 视频剪辑计算机配置要求,视频剪辑需要电脑的什么配置
  10. qt设置文本背景透明_QT透明显示文字
  11. 1、贪心NLP——课程介绍及NLP概论
  12. 带宽,速率,吞吐量区别
  13. antd-select下拉框如何同时获取所选值ID和名字属性
  14. Qt 并行运算高级API QtConcurrent
  15. 转:网络模拟利器NEWT的前世今生
  16. Unity3d多人网络
  17. CentOS 安装软件提示”没有可用软件包XXX
  18. BREAKING CHANGE: webpack < 5 used to include polyfills
  19. 计算机学后感作文400,毕业感想作文400字(4篇)
  20. 逆变器的输出外特性分析

热门文章

  1. Docker中的Docker volumes与Persistent Volume借鉴
  2. 华为app测试软件,测评:华为最新移动应用/APP测试工具MobileTest
  3. 入驻天猫商城的条件是什么
  4. 解读:银发【2016】302号文件
  5. 考试能用计算机,计算机等级考试报考几级有用?
  6. 网易新闻RSS阅读器
  7. 信号完整性(SI)电源完整性(PI)学习笔记(十一)传输线与反射(一)
  8. lammps教程:cvff势函数参数设置方法
  9. 新手必备的网络营销工具
  10. 北京办理居住证都需要准备什么材料,跟流程,我来帮你梳理好了