JAVA练习216-整数的英语表示
给定一个整数,打印该整数的英文描述。
示例 1:
输入: 123
输出: "One Hundred Twenty Three"
示例 2:
输入: 12345
输出: "Twelve Thousand Three Hundred Forty Five"
示例 3:
输入: 1234567
输出: "One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven"
示例 4:
输入: 1234567891
输出: "One Billion Two Hundred Thirty Four Million Five Hundred Sixty Seven Thousand Eight Hundred Ninety One"
分析:
方法:分治算法
英语的表示和汉语不同,它是隔着三位数表示,比如 "Thousand", "Million", "Billion",因此我们只需要将数字按三位分别进行添加英文即可,因为整形最大为 2147483647,刚好最高位就在 Billion 上,如果数字刚好在该位上,直接判断即可。我们可以将个位,十位,千位分别创建数组方便操作。
时间复杂度:O(1) 取决于数字的位数
空间复杂度:O(1)
class Solution {//英文private static String[] ones = {"", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"};private static String[] tens = {"", "Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"};private static String[] trous = {"Thousand", "Million", "Billion"};private static int[] nums = {1000, 1000000, 1000000000};public String numberToWords(int num) {//0if(num == 0){return "Zero";}//结果StringBuilder sb = new StringBuilder();//1000 000 000if(num / nums[2] > 0){sb.append(ones[num / nums[2]]);sb.append(" ").append(trous[2]);num %= nums[2];}//1000 000if(num / nums[1] > 0){translate(num / nums[1], sb);sb.append(" ").append(trous[1]);num %= nums[1];}//1000if(num / nums[0] > 0){translate(num / nums[0], sb);sb.append(" ").append(trous[0]);num %= nums[0];}translate(num, sb);return sb.toString().trim();}//对一个千位数进行翻译public void translate(int num, StringBuilder sb){//百位if(num / 100 > 0){sb.append(" ").append(ones[num / 100]).append(" ").append("Hundred");num %= 100;}//十位if(num / 10 > 1){sb.append(" ").append(tens[num / 10]);num %= 10;}//个位if(num > 0){sb.append(" ").append(ones[num]);}}
}
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/english-int-lcci
JAVA练习216-整数的英语表示相关推荐
- java整数的反转_反转Java中的整数
要在Java中反转整数,请尝试以下代码- 示例import java.lang.*; public class Demo { public static void main(String[] args ...
- java整数的因式分解_如何在Java中找到整数的质数-因式分解
java整数的因式分解 编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的素数因子是将精确地除以给定数字的所有素 ...
- 如何在Java中找到整数的质因数–因式分解
编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的质数因子是将精确地除以给定数字的所有质数. 例如,35的素数因 ...
- LeetCode题库整理【Java】—— 7整数反转
LeetCode题库整理[Java] 7.整数反转 题目:给出一个32位的有符号整数,你需要将这个这个整数中每位上的数字进行反转. 示例1: 输入: 123 输出: 321 示例2: 输入: -123 ...
- java判断一个整数是不是素数(质数)
java判断一个整数是不是素数(质数) /*** 判断一个数是不是素数(质数)* 质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数.*/import java.util.Scann ...
- java存储整数,用于存储整数数值的是 JAVA四种整数数据类型的取值范围分别是多少...
JAVA四种整数数据类型的取值范围分别是多少 byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1) short的取值范围为-32768~32767,占用2个字节(-2的1 ...
- java将一个整数按字节输出_在java中的整数类型有四种,分别是 byte short int long 其中byte只有一个字节 0或1,在此不详细讲解。其他的三种类型如下:1、...
在java中的整数类型有四种,分别是 byte short int long 其中byte只有一个字节 0或1,在此不详细讲解. 其他的三种类型如下: 1. 基本类型:short 二进制位数:16 ...
- JAVA毕业设计黑格伯爵国际英语贵族学校官网计算机源码+lw文档+系统+调试部署+数据库
JAVA毕业设计黑格伯爵国际英语贵族学校官网计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计黑格伯爵国际英语贵族学校官网计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目 ...
- java读取word中的英语音标(Kingsoft Phonetic Plain字体的)
java读取word中的英语音标(Kingsoft Phonetic Plain字体的) 代码: 读取word中的文档遇到了带音标的,Kingsoft Phonetic Plain这种字体在后台打断点 ...
- Java判断一个整数有多少位
Java判断一个整数有多少位 首先,封装一个判断位数的方法:使用for循环进行判断整数的位数.直到传进的整数小于数组中某个值时,停止循环. /*** 获取整数有多少位* @param num 要判断的 ...
最新文章
- matlab与acess连接问题
- python安装venv_Python创建virtualenv(虚拟环境)方法及安装Ubuntu
- 绘图中的drawRect
- 程序员你写的代码,被人挖出了黑产
- 项目进度计划甘特图_项目管理进度计划表制作及甘特图绘制方法
- longvalue_Java Short类longValue()方法及示例
- 神经网络与深度学习——TensorFlow2.0实战(笔记)(三)(python常量、变量和表达式)
- 年薪 37 万+,挪威科技大学(NTNU)招募博士,利用 ML 和 AI 进行钢桥结构健康监测和损伤检测...
- 判断用户用手机访问还是用电脑访问网页
- LDAP TLS配置
- 【专题】CSDN下载频道5月热门资源top100汇总
- C语言重载谭浩强,(完整)C语言谭浩强学习笔记(50页)-原创力文档
- 微信小程序tap事件中target与currentTarget的区别
- 赛马c语言编程,C/C++编程题之渊子赛马
- “21 天好习惯”第一期-4
- 通过BAPI方式展示长文本ADA_POPUP_WITH_TABLE
- 浮动广告代码在网页两侧
- 1.17 设置工作簿的页眉和页脚 [原创Excel教程]
- 主板维修测试软件,主板维修关键测试点(强烈推荐)
- 奈何桥上经过的地方,看醒了多少人
热门文章
- 随便说说,我回来啦~
- 中兴h118b改打印机服务器,TL-WR710N改打印机服务器 WR710硬改OpenWrt打印服务器
- 干涉光强公式怎么计算_光强及计算
- 算高差改正数的计算机程序,水准测量中测量高差的改正数怎么计算?
- Java Base64 加密与解密
- MATLAB从fig文件中获取数据
- Voltage Trackers for Sensors power supply
- linux usb有线网卡驱动_基于USB设备的Linux网络驱动程序开发
- 语言学句法分析树形图怎么画_树形图(句法)
- 博弈论中SG函数的解释与运用