java求整数的位数方式

目录
  • 求整数的位数
    • 其一
    • 其二
    • 其三
  • java整数位数判断

求整数的位数

一般有几种方法,其一是转成字符串求,缺点是字符串耗时间长;另一种是用Math.log10();用log函数;还有一种用循环除以10的方式求出;最后一种,直接判断<10,<100,<1000,<10000……或许效率挺高吧,因为不需要计算。

其一

private static int getNumLenght(long num){
        num = num>0?num:-num;       
        return String.valueOf(num).length();
    }

其二

private static int getNumLenght(long num){
        num = num>0?num:-num;       
        if (num==0) {
            return 1;
        }
        return (int) Math.log10(num)+1;
    }

其三

private static int getNumLenght(long num){
        if (num==0) {
            return 1;
        }
        int lenght = 0;
        for (long temp = num ; temp != 0; temp/=10){
            lenght++;
        }
        return lenght;
    }

最后一种老长老长,不写了。

java整数位数判断

public class Test {    
final static int[] sizeTable = { 9, 99, 999, 9999, 99999, 999999, 9999999,    
99999999, 999999999, Integer.MAX_VALUE };    
public static void main(String[] args) {    
        System.out.println(sizeOfInt(1234));    
    }    
    static int sizeOfInt(int x) {    
      for (int i = 0;; i++)    
        if (x <= sizeTable[i])    
        return i + 1;    
        } 
}  

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java根据正整数的位数并逆序打印出各位数字

    题目:给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. 程序设计: import java.util.Scanner; public class Ex24 { public static void main(String[] args) { Ex24 tn = new Ex24(); Scanner s = new Scanner(System.in); long a = s.nextLong(); if(a < 0 || a > 100000) { System.o

  • Java判断数字位数的方法总结

    普通方法: import java.util.Scanner; public class Digits { public static void main(String[] args){ Scanner input=new Scanner(System.in);//声明扫描仪变量 System.out.println("请输入0-999999999整数");//系统提示输入 try{ //监听异常 while(true){ int num=input.nextInt(); int co

  • Java指定保留小数位数的方法

    今天项目中需要更改时长的显示方式,规定必须保留两位小数,刚才看简书的时候正好看到一个指定保留小数位数的工具类的文章,在此基础上,做了一点小修改,用起来更加方便了,有需要的朋友尽管撸走 DecimalUtils 类: import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; /** * Created by Sean on 17/3/10. */ public class

  • java求整数的位数方式

    目录 求整数的位数 其一 其二 其三 java整数位数判断 求整数的位数 一般有几种方法,其一是转成字符串求,缺点是字符串耗时间长:另一种是用Math.log10();用log函数:还有一种用循环除以10的方式求出:最后一种,直接判断<10,<100,<1000,<10000……或许效率挺高吧,因为不需要计算. 其一 private static int getNumLenght(long num){         num = num>0?num:-num;       

  • Java求出任意数字的各个位数之和方式

    目录 求出任意数字的各个位数之和 求一个整数各位数之和 思路分析 代码 求出任意数字的各个位数之和 import java.util.Scanner; /** * 用JAVA求任意一个数的各个位数之和 * @author Administrator * */ public class test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入一

  • Java如何使用while循环计算一个整数的位数

    目录 如何使用while循环计算一个整数的位数 实现代码如下 java循环习题,求整数位数 方法一 方法二 如何使用while循环计算一个整数的位数 做个 java 小练习,使用while循环来实现如下功能: 计算出任意一个小于10位的整数的个数. 如输入100,则输出:它是个3位数! 实现代码如下 public static void count(int n) { /** * 计算一个整数(小于10位)的位数 * 如:输入999,则输出 "它是个3位数" * * @param n:小

  • Java两整数相除向上取整的方式详解(Math.ceil())

    目录 前言: 方式一: 添加三目运算符逻辑代码 方式二:使用ceil函数 方式三:其他逻辑 最后总结 附:java向上取整函数Math.ceil() 前言: Java中两个整数相除,如果不能整除,默认是向下取整的.例如:11 除以 3 的结果是 3.然而,某些情况下(eg. 把11个糖果,每3个分一堆,不足三个也分成一堆,可以分几堆?),我们需要向上取整,这样的情况该如果处理呢? 方式一: 添加三目运算符逻辑代码 x / y + (x % y != 0 ? 1 : 0); 这种方法逻辑上很简单,

  • java求100之内的素数(质数)简单示例

    质数又称素数.一个大于1的自然数,如果除了1和它自身外,不能被其他自然数整除的数:否则称为合数.根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积:而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的.下面是一个java求100之内的素数简单示例 复制代码 代码如下: public class test { public static void main(String[] args) {  int i,n,k=0;     for (n = 3; n

  • Java求10到100000之间的水仙花数算法示例

    本文实例讲述了Java求10到100000之间的水仙花数算法.分享给大家供大家参考,具体如下: 水仙花数: 概念:水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身.(例如:1^3 + 5^3+ 3^3 = 153) 算法思路分析:这个算法我们分两个步骤来进行:第一:我们做一个求一个数的位数的函数:第二:我们通过调用此函数来进行10到100000之间素数的计算! 下面给出具体的代码(仅供参考): package javastudy; public class

  • Java中随机数的产生方式与原理详解

    Java中随机数的产生方式与原理 查阅随机数相关资料,特做整理 首先说一下java中产生随机数的几种方式 在j2se中我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以100,他就是个100以内的随机数字,这个在j2me中没有. 在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以生产随机整数.随机float.随机double.随机long,这个也是我们在j2me

  • java求余的技巧汇总

    背景 传说里玉皇大帝派龙王马上降雨到共光一带,龙王接到玉皇大帝命令,立马从海上调水,跑去共光施云布雨,但粗心又着急的龙王不小心把海里的鲸鱼随着雨水一起降落在了共光,龙王怕玉皇大帝责怪,灵机一动便声称他是派鱼到共光,希望百姓可以年年有余,并请求玉皇大帝将这条鱼任命为鱼神,保佑人间太平可以年年有余. 年年有余 java 求余操作初阶 java中也有余的规范[jls-15.17.3],废话不说,直接上代码,从中我们可以学到很多技巧: 例1: int a = 5%3; // 2 int b = 5/3;

  • Java求余%操作引发的一连串故事

    操作符%通常用在正整数上,但同样可以用在负整数和浮点数上. 注意:只有当被除数是负数时, 余数才是负的. C1 RCE对%的处理 HotSpot VM的C1有个RCE(Range Check Elimination,范围检查消除)优化,所谓范围检查消除,就是为了正确的抛出数组越界异常,虚拟机需要在数组访问的一些地方插入隐式的检查,但是这些检查会降低性能,比如在循环中每次循环都得检查一次,所以HotSpot VM会想办法在可能的地方消除这些检查.我在看C1 RCE的时候发现目前它对求余符号的支持较

  • Java各种比较对象的方式的对比总结

    一.==和!=操作符 让我们从==和!=开始可以分别判断两个Java对象是否相同的操作符. 1.1 原始类型(Primitives) 对于原始类型,相同意味着具有相等的值: assertThat(1 == 1).isTrue(); 感谢自动拆箱,在将原语值与其包装类型对应值进行比较时,也可以这样做: Integer a = new Integer(1); assertThat(1 == a).isTrue(); 如果两个整数的值不同,==运算符将返回false,而!=运算符将返回true. 1.

随机推荐