Java实现 蓝桥杯 蓝桥杯VIP 基础练习 数的读法
问题描述
当输入12 3456 7009时,会给出相应的念法:
十二亿三千四百五十六万七千零九
用汉语拼音表示为
shi er yi san qian si bai wu shi liu wan qi qian ling jiu
设计这样一个系统:给定一个阿拉伯数字串,你帮他按照中文读写的规范转为汉语拼音字串,相邻的两个音节用一个空格符格开。
注意必须严格按照规范,比如说“10010”读作“yi wan ling yi shi”而不是“yi wan ling shi”,“100000”读作“shi wan”而不是“yi shi wan”,“2000”读作“er qian”而不是“liang qian”。
样例输入
1234567009
样例输出
shi er yi san qian si bai wu shi liu wan qi qian ling jiu
这道题自我感觉就是一个时间的问题,不是很难,但可能很费时间
package 蓝桥杯VIP;
import java.util.Arrays;
import java.util.Scanner;
public class 数的读法 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
readToChinese(scanner.nextInt());
}
public static void readToChinese(int n){
if(n < 10000){
thousandSay(n);
System.out.println();
}else if(n < 100000000){
int n1 = n / 10000;
int n2 = n % 10000;
if(n2 == 0){
thousandSay(n1);
System.out.print("wan");
System.out.println();
}else {
thousandSay(n1);
System.out.print("wan ");
thousandSay(n2);
System.out.println();
}
}else if(n < 2000000000){
int n1 = n / 100000000;
int n2 = (n/10000) % 10000;
int n3 = n % 10000;
thousandSay(n1);
System.out.print("yi ");
thousandSay(n2);
System.out.print("wan ");
thousandSay(n3);
System.out.println();
}else if(n == 2000000000){
System.out.println("er yi");
System.out.println();
}else {
System.out.println("输入错误,正确范围是(0-20 0000 0000)");
}
}
public static void thousandSay(int n){
String[] arr = new String[]{"ling ","yi ","er ","san ","si ","wu ","liu ","qi ","ba ","jiu "};
String shi = "shi ";
String bai = "bai ";
String qian = "qian ";
int num = n;
if(n < 10){
System.out.print(arr[n]);
}else if(n < 100){
int a = n / 10;
int b = n % 10;
if(b == 0){
System.out.print(arr[a]+shi);
}else if(a == 1){
System.out.print(shi+arr[b]);
} else {
System.out.print(arr[a]+shi+arr[b]);
}
}
else if(n < 1000){
int a = n / 100;
int b = (n / 10) % 10;
int c = n % 10;
if(b == 0 && c == 0){
System.out.print(arr[a]+bai);
}else if(b == 0 & c != 0){
System.out.print(arr[a]+bai+arr[0]+arr[c]);
}else if(b != 0 && c == 0){
System.out.print(arr[a]+bai+arr[b]+shi);
}else {
System.out.print(arr[a]+bai+arr[b]+shi+arr[c]);
}
}else if(n < 10000){
int a = n / 1000; //表示千位
int b = (n / 100) % 10; //表示百位
int c = (n / 10) % 10; //表示十位
int d = n % 10; //表示个位
if(b == c && c == d && d == 0){
System.out.print(arr[a]+qian);
}else if (b == 0 && c != 0 & d != 0){
System.out.print(arr[a]+qian+arr[0]+arr[c]+shi+arr[d]);
}else if(b == 0 && c == 0 && d != 0){
System.out.print(arr[a]+qian+arr[0]+arr[d]);
}else if (b == 0 && c != 0 && d == 0){
System.out.print(arr[a]+qian+arr[0]+arr[c]+shi);
}else if(c == 0 && d == 0){
System.out.print(arr[a]+qian+arr[b]+bai);
}else if (c == 0 && d != 0){
System.out.print(arr[a]+qian+arr[b]+bai+arr[0]+arr[d]);
}else if(d == 0){
System.out.print(arr[a]+qian+arr[b]+bai+arr[c]+shi);
}else {
System.out.print(arr[a]+qian+arr[b]+bai+arr[c]+shi+arr[d]);
}
}
}
}
Java实现 蓝桥杯 蓝桥杯VIP 基础练习 数的读法的更多相关文章
- 【蓝桥杯】非VIP基础题型训练17题 (Python 题解)
NO.I 基础题型 基础练习汇总 时间 题目 解析 21.12.24 早上 1. A+B问题 练习系统的适应 21.12.24 早上 2. 数组排序 输入输出排序 21.12.24 早上 3. 十六进 ...
- 问题 1936: [蓝桥杯][算法提高VIP]最大乘积
问题 1936: [蓝桥杯][算法提高VIP]最大乘积 时间限制: 1Sec 内存限制: 128MB 提交: 77 解决: 16 题目描述 对于n个数,从中取出m个数,如何取使得这m个数的乘积最大呢? ...
- Java实现第九届蓝桥杯全球变暖
全球变暖 题目描述 你有一张某海域NxN像素的照片,"."表示海洋."#"表示陆地,如下所示: ....... .##.... .##.... ....##. ...
- java面试宝典(蓝桥学院)
Java面试宝典(蓝桥学院) 回答技巧 这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的学生在笔试/面试时更好地赢得好的结果.由于这套试题涉及的范围 ...
- 20145213 《Java程序设计》实验四 Android开发基础
20145213 <Java程序设计>实验四 Android开发基础 说在前面的话 不同以往实验,对于这次实验具体内容我是比较茫然的.因为点我,打开实验四的链接居然能飘出一股熟悉的味道,这 ...
- 20145225《Java程序设计》 实验四 Android开发基础
20145225<Java程序设计> 实验四 Android开发基础 实验报告 实验内容 安装Android Studio 运行安卓AVD模拟器 使用安卓运行出虚拟手机并显示HelloWo ...
- 第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备
相信很多人或多或少听说了微信公众平台的火热.但是开发还是有一点门槛,鉴于挺多朋友问我怎么开发,问多了,自己平时也进行以下总结.所以下面给大家分享一下我的经验: 微信公众号是什么? 官网的介绍:再小的个 ...
- Java学习-033-JavaWeb_002 -- 网页标记语言JSP基础知识
JSP 是 Sun 公司提倡的一门网页技术标准.在 HTML 文件中,加入 Java 代码就构成了 JSP 网页,当 Web 服务器访问 JSP 请求的时候,首先执行其中的 Java 程序源码,然后以 ...
- 老李分享:《Java Performance》笔记1——性能分析基础 1
老李分享:<Java Performance>笔记1——性能分析基础 1.性能分析两种方法: (1).自顶向下: 应用开发人员通过着眼于软件栈顶层的应用,从上往下寻找性能优化的机会. ...
随机推荐
- 第一行Kotlin系列(一)kotlin按钮点击事件
按钮findViewBuId <Button android:id="@+id/mButton4" android:layout_width="wrap_conte ...
- Java SPI机制简述
概述 SPI全称Service Provider Interface,是一种为框架提供良好扩展性的机制.一般由框架开发方定义接口规范(如java.sql.Driver),而第三方厂商为之提供自己的实现 ...
- 一分钟掌握MySQL的InnoDB引擎B+树索引
MySQL的InnoDB索引结构采用B+树,B+树什么概念呢,二叉树大家都知道,我们都清楚随着叶子结点的不断增加,二叉树的高度不断增加,查找某一个节点耗时就会增加,性能就会不断降低,B+树就是解决这个 ...
- 我的linux学习日记day2
RPM 软件包管理器 目的:降低软件安装难度原理 :将软件源代码加上一套安装规则打包到一起,用户只需要运行RPM systemctl start 服务名称 开启服务systemctl stop 服务 ...
- Docker之save、load、export、import命令
Docker的镜像和容器可以有两种方式导出 1.Docker save #ID or #Name 2.Docker save #ID or #Name docker save和docker expor ...
- kibana 通过nginx+ldap实现登录认证
nginx配置 使用自己搭建的openldap 使用用户中心的openldap
- 【雕爷学编程】Arduino动手做(42)---PM2.5粉尘传感器
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备 ...
- 201771010117马兴德 实验二 Java基本程序设计(1)
实验二 Java基本程序设计(1) 第一部分 理论知识的学习. 第三章Java基本程序设计结构 1 基本知识: (1)标识符:标识符由字母.下划线.美元符号和数字组成,且第一个符号不能为数字 ...
- SSH_ProductCRUD的项目结构与配置文件
项目结构 各类配置文件 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hib ...
- Java——关键字instanceof
instanceof 判断一个对象是否为一个类的实例,是为true ,否为false class Animal{} class Cat extends Animal{} /**instanceof 判 ...