Java 大数高精度函数(BigInteger)

Java 提交格式

import .. 头文件 ..

public class Main {
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        while(cin.hasNext()){   // 等同于 !=EOF
            T = cin.nextInt();
        }
    }
}

头文件:

java.util.Scanner;
java.math.BigInteger;
java.math.BigDecimal;

大数运算时要使用相关的方法而不能使用运算符 如:(+ - * / ..)

BigInteger 大 ——— 整数

BigInteger m = new BigInteger( String );

BigDecimal 大 ——— 浮点数 //不适合于大量的数学运算

BigDecimal m = new BigDecimal( String );

基本函数:

    BigInteger n = new BigInteger( String ); 
    BigInteger m = new BigInteger( String );

    toString(void);                         =>  BigInteger -> String
    n = BigInteger.valueOf(k);              =>  n = k   - - - - - - BigInteger.ZERO/ONE..
    n.add(m);                               =>  n + m
    n.subtract(m);                          =>  n - m
    n.multiply(m);                          =>  n * m
    n.divide(m);                            =>  n / m       整除 
    n.remainder(m); n.mod(m);               =>  n % m
    int[] a = n.divideAndRemainder(m);      =>  a[0] = n / m; a[1] = n % m
    n.pow(m);                               =>  n ^ m       n的m次幂
    n.gcd(m);                               =>  gcd(n,m)
    n.abs();                                =>  abs(n)
    n.negate();                             =>  -n
    n.signum();                             =>  n = 0 return  0
                                                n < 0 return -1
                                                n > 0 return  1
    n.shiftLeft(k);                         =>  n << k      移位运算
    n.shiftRight(k);                        =>  n >> k

    n.isProbablePrime();                    =>  判断是否为素数 

    n.compareTo(m);                         =>  n < m return -1  比较方法
                                                n > m return  1
                                                n = m return  0
    n.equals(m);                            =>  n == m return 1

    n.min(m);                               =>  return min(n, m)
    n.max(m);                               =>  return max(n, m)
    n.intValue(); n.longValue(); n.floatValue(); n.doubleValue();
                                            =>  change BigInteger to int / long / float / double

    bit_operation:              位运算

    n.and(m);                               =>  n & m       且 
    n.or(m);                                =>  n | m       或 
    n.xor(m);                               =>  n xor m     异或 
    n.not();                                =>  !n          非 
    n.bitLength();                          =>  二进制位数 (补码-正数的补码为其自身)
    n.bitCount();

进制转换:

String string = new java.math.BigInteger(String num, int from).toString(int to);

你可能感兴趣的:(模版)