【Java】7-23 币值转换 (20 分)
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 分)相关推荐
- 7-168 币值转换 (20 分)
7-168 币值转换 (20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为 ...
- 7-83 币值转换 (20 分)
7-83 币值转换 (20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了 ...
- 7-83 币值转换 (20分)
整了3个小时终于做出来了(我是菜鸡,大佬们别喷),初始的时候解题方向整错了:我把单位和数字放在一起输出了,导致以我现在能力无法正确表达出汉字的习惯.意识到可能需要重写代码,就看了下网上的答案,大体思路 ...
- 7-23 币值转换 (20分)
7-23 币值转换 (20分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简 ...
- java币值转换_-PAT-java-5-23 币值转换 (20分)
输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简化输出,用小写英文字母a-j顺序 ...
- 7-43 币值转换 (20分)_「篮球看吧」40岁了!生涯25年!还狂砍33分+联赛得分王,这他么是人吗...
35岁的詹姆斯仍处在巅峰,让无数人惊讶.40岁的时候詹皇会是什么样子?现在詹皇有了一个参照样本,那就是40岁的斯科拉.这位阿根廷球星在迈入四旬依然能称霸欧洲顶级联赛,目前在意大利甲级篮球联赛得分榜排名 ...
- PTA 7-43 币值转换 (20 分)
题目 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简化输出,用小写英文字母a- ...
- 7-4 币值转换 (20分)
输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简化输出,用小写英文字母a-j顺序 ...
- 币值转换 (20分)
输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简化输出,用小写英文字母a-j顺序 ...
最新文章
- Rancher 2.0 里程碑版本:支持添加自定义节点!
- jq php异步上传图片,PHP+Ajax实现图片异步上传预览
- idea启动前端vue项目(各种坑)
- python题型大全_python进阶:练习题 汇总
- C++学习笔记(10)运算符重载,友元函数,友元类
- 杭州滨江工作方案:将区块链等产业与“数字滨江”、“数字经济”紧密相连
- iOS 时间校准解决方案
- java----内省
- 视频剪辑计算机配置要求,视频剪辑需要电脑的什么配置
- qt设置文本背景透明_QT透明显示文字
- 1、贪心NLP——课程介绍及NLP概论
- 带宽,速率,吞吐量区别
- antd-select下拉框如何同时获取所选值ID和名字属性
- Qt 并行运算高级API QtConcurrent
- 转:网络模拟利器NEWT的前世今生
- Unity3d多人网络
- CentOS 安装软件提示”没有可用软件包XXX
- BREAKING CHANGE: webpack < 5 used to include polyfills
- 计算机学后感作文400,毕业感想作文400字(4篇)
- 逆变器的输出外特性分析