zoukankan      html  css  js  c++  java
  • Java BigInteger类

    其实除了Python,Ruby外,Java也自带高精,只不过被封装在类里.Java有两个高精类:BigIntegerBigDecimal,分别是高精度整数和高精度小数.本文来简单介绍一下BigInteger类.

    构造

    BigInteger类只能从String构造.如,

    BigInteger a = new BigInteger("233") ;
    

    如果要用Scanner读入一个BigInteger,可以这么写:

    Scanner scan = new Scanner(System.in) ;
    BigInteger a = new BigInteger(scan.next()) ;
    

    函数

    因为Java不支持重载运算符,所以所有的运算都由函数来实现.

    BigInteger add(BigInteger val) //求和
    BigInteger subtract(BigInteger val)  //相减
    BigInteger multiply(BigInteger val) //求积
    BigInteger divide(BigInteger val)  //求商
    BigInteger mod(BigInteger val) //取模
    BigInteger remainder(BigInteger val) //求余
    
    BigInteger pow(int exponent) //求幂
    BigInteger abs() //绝对值
    BigInteger gcd(BigInteger val)  //求gcd
    BigInteger max(BigInteger val) //求较大值
    BigInteger min(BigInteger val) //求较小值
    BigInteger negate() //相反数
    
    BigInteger leftShift(int n) //左移
    BigInteger rightShift(int n) //右移
    BigInteger and(BigInteger val)  //求与
    BigInteger andNot(BigInteger val) //求与+取反(与非)
    BigInteger or(BigInteger val) //求或
    BigInteger xor(BigInteger val) //求异或
    BigInteger not() //取反
    
    int intValue() //转int
    long longValue() //转long
    double doubleValue()  //转double
    float floatValue()  /转float
    byte[] toByteArray(BigInteger val) //转byte数组(底层实现是由byte数组的反码构成的)
    String toString() //转字符串
    

    最后说一句,BigIntegerjava.math库中.

    Code

    LG P1932 A+B A-B A*B A/B A%B Problem:

    import java.util.* ;
    import java.io.* ;
    import java.math.BigInteger;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in) ;
            BigInteger a = new BigInteger(scan.next()), b = new BigInteger(scan.next()) ;
    
            System.out.println(a.add(b)) ;
            System.out.println(a.subtract(b)) ;
            System.out.println(a.multiply(b)) ;
            System.out.println(a.divide(b)) ;
            System.out.println(a.mod(b)) ;
        }
    }
    
  • 相关阅读:
    Leetcode 1489找到最小生成树李关键边和伪关键边
    Leetcode 113 路径总和 II
    hdu 1223 还是畅通工程
    hdu 1087 Super Jumping! Jumping! Jumping!
    hdu 1008 Elevator
    hdu 1037 Keep on Truckin'
    湖工oj 1241 畅通工程
    湖工oj 1162 大武汉局域网
    hdu 2057 A + B Again
    poj 2236 Wireless Network
  • 原文地址:https://www.cnblogs.com/Anverking/p/oi-biginteger.html
Copyright © 2011-2022 走看看