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).自顶向下: 应用开发人员通过着眼于软件栈顶层的应用,从上往下寻找性能优化的机会. ...
随机推荐
- CF-557C Arthur and Table 权值线段树
Arthur and Table 题意 一个桌子有n个腿,每个腿都有一个高度,当且仅当最高的腿的数量大于桌子腿数量的一半时,桌子才是稳定的.特殊的是当只有一个腿时,桌子是稳定的,当有两个腿时两个腿必须 ...
- Android广播时间——实现强制下线功能
目录 思路:强制下线功能需要先关闭掉所有的活动,然后回到登录界面. 步骤 1.关闭所有活动 2.创建BaseActivity类作为所有活动的父类,因为需要用ActivityCollector管理所有活 ...
- Apache Poi实现excel解析
一.说明 1.本文通过使用 poi 工具解析 excel 表格数据,实现导入导出 2.excel目前有两种格式 2003版本的 excel.xls 与 2007版本的 excel.xlsx ,注意两种 ...
- 最小生成树的本质是什么?Prim算法道破天机
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是算法和数据结构专题20篇文章,我们继续最小生成树算法,来把它说完. 在上一篇文章当中,我们主要学习了最小生成树的Kruskal算法.今 ...
- 关于vue打包后,访问不到页面和访问不到图片。
vue项目完成打包上线的时候很多人都会碰到静态资源找不到,常见的有两个第一种:js,css路径不对解决办法:打开config/index.js,将其中的assetsPublicPath值改为’./’ ...
- rabbitMQ基于spring-rabbitnq
一.什么是MQ MQ全称为Message Queue,消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消息传递 ...
- webpack指南(五)TypeScript
将webpack与TS进行集成. 1. 安装TypeScript 编译器和 loader npm install --save-dev typescript ts-loader 2. 在package ...
- Django视图函数之三种响应模式
视图函数响应处理: from django.shortcuts import render,HttpResponse,redirect (1)render 处理模板文件,可以渲染模板,第一个参数必须为 ...
- servlet--http接口简单的创建及调用
很久没有用servlet的交互技术,生疏的遭不住.现在简单的说说servlet中http接口的创建及调用,便于大家理解,使用. 先说说服务端,就是提供服务方的代码: pom.xml <depen ...
- tp5插入百万条数据处理优化
<?php namespace app\index\controller; use think\Controller; use think\Db; class Charu extends Con ...