【牛客网题目:人民币转换】

1、中文大写金额数字前应标明“人民币”字样。中文大写金额数字应用

壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿、元、角、分、零、整等字样填写。(30分)

2、中文大写金额数字到“元”为止的,在“元”之后,应写“整字,

如¥ 532.00应写成“人民币伍佰叁拾贰元整”。在”角“和”分“后面不写”整字。(30分)

3、阿拉伯数字中间有“0”时,中文大写要写“零”字,阿拉伯数字中间连续有几个“0”时,

中文大写金额中间只写一个“零”字,如¥6007.14,应写成“人民币陆仟零柒元壹角肆分“。

输入描述:

输入一个double数

输出描述:

输出人民币格式

输入例子

151121.15

**输出

人民币拾伍万壹仟壹佰贰拾壹元壹角伍分

import java.util.Scanner;

`public class RenMingBiTranslate {`

private final static char[] NUM = {'零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖', '拾', '佰', '仟', '万', '亿'};//数组下标和其对应元素是一样的

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

double d = scanner.nextDouble();

System.out.println(convert(d));

}

private static String convert(double d) {//处理了小数部分

long n = (long) d;//将double转为long,变成整型

StringBuilder builder = new StringBuilder("人民币");

// 处理整数部分,前提是整数部分大于0

if (n > 0) {

convert(n, builder);

builder.append('元');

}

// 加上0.0001是为了防止d*100发生失真

int v = (int) (d * 100 - n * 100 + 0.0001);//将小数扩大成整数

int i = v / 10;//小数部分 0.1

int j = v % 10;//小数部分 0.01

if (i == 0 && j == 0) {//题目要求 分角是0,单位+整

builder.append('整');

return builder.toString();

}

if (i != 0) {//0.1位置有值

builder.append(NUM[i]).append('角');//追加其 值和单位

}

if (j != 0) {

builder.append(NUM[j]).append('分');

}

return builder.toString();

}

private static void convert(long n, StringBuilder builder) {//整数部分

// 大于一亿

if (n >= 1_0000_0000) {

long q = n / 1_0000_0000;

long r = n % 1_0000_0000;

convert(q, builder);

builder.append('亿');

// 是亿的整数倍

if (r != 0) {

convert(r, builder);

}

}

// 大于一万

else if (n >= 1_0000) {

long q = n / 1_0000;

long r = n % 1_0000;

convert(q, builder);

builder.append('万');

// 是亿的整数倍

if (r != 0) {

if (r < 100) {//有1个或者2个零

builder.append('零');//只追加一个0

}

convert(r, builder);

}

}

// 大于一千

else if (n >= 1000) {

long q = n / 1000;

long r = n % 1000;

convert(q, builder);

builder.append('仟');

// 是亿的整数倍

if (r != 0) {

if (r < 100) {//同上理

builder.append('零');

}

convert(r, builder);

}

}

// 大于一百

else if (n >= 100) {

long q = n / 100;

long r = n % 100;

convert(q, builder);

builder.append('佰');

// 是亿的整数倍

if (r != 0) {

if (r < 10) {//有一个0

builder.append('零');

}

convert(r, builder);

}

}

// 大于十

else if (n >= 10) {

long q = n / 10;

long r = n % 10;

if (q >= 1) {

convert(q, builder);//最终走到最下面的NUM[] 0-9

}

builder.append('拾');//再带单位

// 是亿的整数倍

if (r != 0) {//走到下面的NUM【0-9】

convert(r, builder);

}

} else {//<10 0-9

builder.append(NUM[(int) n]);

}

}

}

oj美元和人民币java_【牛客网OJ题】:人民币转换相关推荐

  1. 牛客网刷题记录 || 结构体和类

    这是牛客网刷题记录专栏第五篇博文,先给大家简单介绍一下牛客网,牛客网是一个集笔面试系统.题库.课程教育.社群交流.招聘内推于一体的优质网站,牛客网题库中包含几万道题目,注重通过边学边练的模式揽获编程人 ...

  2. C++ 牛客网做题总结

    20天的刷完1234道牛客网C++题,正确率嘛,还算可以,一般~ 1:正确率63% 2:查缺补漏,复习了非常非常多的知识点:牛客网做题笔记 3:当时主要的目的是为了笔试做准备的,找工作的第一关嘛,到时 ...

  3. 牛客网刷题之SQL篇:非技术快速入门39T

    导航 前序 一.简单的关键字练习 1-10 二.知识点复习之 ==运算符== 1.算数运算符 2.比较运算符 3.逻辑运算符 4.位运算符 三.10-28T 0.简单题总结 1. SQL18 ==分组 ...

  4. 牛客网-SQL题库笔记

    牛客网-SQL题库笔记 01.最晚入职员工的所有信息 02.查找入职员工时间排名倒数第三的员工所有信息 03.查找各个部门当前领导当前薪水详情以及其对应部门编号 04.查找所有已经分配部门的员工的la ...

  5. 2023年大年初一 —— 牛客网刷题经验分享~

    2023年大年初一 -- 牛客网刷题经验分享~

  6. Python 牛客网编程题输入用例问题

    Python 牛客网编程题的输入用例 前言 切入正题 输入字符串 输入整数 输入列表 后记 前言 在牛客网刷题的时候,发现明明在python本地编译器能够轻松解决的输入用例问题,到牛客网在线编译就得好 ...

  7. 牛客网 刷题前的准备工作(输入 输出 如何接收?)

    牛客网 刷题前的准备工作 牛客网 刷题前的准备工作 1. 数据读取接受问题 2.牛客刷题前的准备: 2.1. 弄清楚输入输出的行数关系 3.代码怎么写 3.1. 在牛客上测试自己的模板代码,是否能正确 ...

  8. 牛客网刷题记录 || 循环

    这是牛客网刷题记录专栏第七篇博文,先给大家简单介绍一下牛客网,牛客网是一个集笔面试系统.题库.课程教育.社群交流.招聘内推于一体的优质网站,牛客网题库中包含几万道题目,注重通过边学边练的模式揽获编程人 ...

  9. 牛客网错题整理--C++篇1

    牛客网错题整理--C++篇1 1.下列程序的运行结果是PP 10003,请为横线处选择合适的程序(): #include<stdio.h>#include<string.h>s ...

  10. 牛客网sql题库(1-30题)—— 个人答案与过程解析

    本篇博客分享一下我在牛客网sql题库刷题时,自己敲出来的结果.结果均通过了牛客网的结果验证. 具体的题目就不放在博客中了,感兴趣可以自行去搜索牛客网,找到sql题库在线编程 每道题下面都有我自己写的题 ...

最新文章

  1. echarts统计x轴区间的数值
  2. Word2vec基础之霍夫曼树
  3. 【机器学习】机器学习项目流程
  4. ITK:计算梯度各向异性扩散
  5. VTK:图表之ConnectedComponents
  6. 牛客 XOR和(找规律)
  7. spark1.6.1 on yarn搭建部署
  8. 我的世界服务器怎么修改书与笔,我的世界书与笔怎么做 我的世界书与笔怎么用...
  9. 查找最接近的元素c语言,查找最接近的元素
  10. vue-router向子组件传递参数
  11. 1个显示器分割2画面_1把花生2个鸡蛋,做个小零食,1口1个特别香,做法还简单!...
  12. Java 11 的新特性(上)
  13. 计算机无法验证签名,你如何解决电脑无法验证数字签名的问题
  14. matlab仿真中直流电压,直流升压变换器的MATLAB仿真.doc
  15. Assembler - 循环程序设计
  16. python快速实现简易超级玛丽小游戏
  17. 济南出台5G专项规划,十年布局5G基站18万处
  18. 《第十一堂棒球课》:MLB棒球创造营·棒球名人堂
  19. linux增加elk用户,在Ubuntu 18.04 Bionic Beaver Linux上安装ELK
  20. 计算机网络论文2020年8000字,2020年计算机网络技术专业论文提纲模板.doc

热门文章

  1. 六一儿童节 python
  2. 软件开发培训学校四大培训标准,引领行业标杆
  3. 我的世界java版安装mod手机版,我的世界国际版手机版
  4. 大数据分析:将大数据转化为巨额资金 第2章和第3章
  5. 机器学习笔记 - Moore-Penrose 伪逆
  6. 2021-03-02 Windows远程桌面简易教程
  7. 使用jupyter环境在数据集处理中遇到.ipynb_checkpoints no such file or directory的问题
  8. 搭建sql-libs的环境
  9. c语言getc函数_C语言中的getc()函数与示例
  10. 六度人脉,每一个擦肩而过都有可能和你有关系