JAVA BigInteger類(算法競賽大數無上限)

比賽時候好多時候常遇到大數據題,又懶得模擬,Java中有一個類就是用來處理很大的數據的類(無上限啊啊啊啊真香),爲BigInteger類

下面是BigInteger類常用的方法,基本上所有的操作要轉換成BigInteger對象來進行處理

具體的測試代碼如下:

import java.math.BigInteger;
public class Main {
    public static void main(String[] args) {
        //加法
        BigInteger add1 = new BigInteger("10");
        System.out.println(add1.add(new BigInteger("20")));
        
        //減法
        BigInteger sub1 = new BigInteger("10");
        System.out.println(sub1.subtract(new BigInteger("20")));
        
        //除法
        BigInteger div1 = new BigInteger("10");
        System.out.println(div1.divide(new BigInteger("20")));
        
        //乘法
        BigInteger mul1 = new BigInteger("10");
        System.out.println(mul1.multiply(new BigInteger("20")));
        
        //取模
        BigInteger remain1 = new BigInteger("10");
        System.out.println(remain1.remainder(new BigInteger("8")));
           
        //快速冪取模
        BigInteger mod = new BigInteger ("10");
        BigInteger pow = new BigInteger ("20");
        System.out.println(pow.modPow(pow,mod));
        
        //比較兩個數字的大小,小於返回-1,大於返回1,等於0的時候返回0
        BigInteger comp1 = new BigInteger("10");
        System.out.println(comp1.compareTo(new BigInteger("18")));
        
        //n次冪的運算
        BigInteger power1 = new BigInteger("2");
        System.out.println(power1.pow(10));
        
        //返回較小的數
        BigInteger min1 = new BigInteger("2");
        System.out.println(min1.min(new BigInteger("-23")));
        
        //返回較大的數
        BigInteger max1 = new BigInteger("2");
        System.out.println(max1.max(new BigInteger("-23")));
        
        //返回該類型的數字的值
        BigInteger val = new BigInteger("123");
        System.out.println(val.intValue());
        
        //返回最大公約數
        BigInteger gcd1 = new BigInteger("12");
        System.out.println(gcd1.gcd(new BigInteger("6")));
        
        //取反
        BigInteger neg1 = new BigInteger("12");
        System.out.println(neg1.negate());
        
        //按位與
        BigInteger and1 = new BigInteger("10");
        System.out.println(and1.and(new BigInteger("1")));
        
        //按位或
        BigInteger or1 = new BigInteger("10");
        System.out.println(or1.or(new BigInteger("10")));
        
        //異或
        BigInteger xor1 = new BigInteger("10");
        System.out.println(xor1.xor(new BigInteger("10")));
        
        //返回n進制的字符串(進制的轉換)
        BigInteger decimal1 = new BigInteger("12");
        System.out.println(decimal1.toString(2));
        
        //返回數字的絕對值
        BigInteger abs1 = new BigInteger("-12");
        System.out.println(abs1.abs());
        
        //檢測某位上是否爲1
        BigInteger testBit1 = new BigInteger("4");
        System.out.println(testBit1.testBit(2));  

       //左移1位
        BigInteger moveLeftBit1 = new BigInteger("4");
        System.out.println(moveLeftBit1.shiftLeft(1));
        
        //右移1位
        BigInteger moveRightBit1 = new BigInteger("4");
        System.out.println(moveRightBit1.shiftLeft(-1));

        //非
        BigInteger not = new BigInteger ("10");
        System.out.println(not.not());

        //valueOf()初始化

        //返回當前大整數的相反數
        BigInteger negate = new BigInteger ("10");
        System.out.println(negate.negate());

        //判斷質數,並返回
        BigInteger prime = new BigInteger ("10");
        System.out.println(prime.probablePrime());
        System.out.println(prime.nextprobablePrime());
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章