java大数使用

    科技2022-09-02  100

    java大数用法

    文章目录

    java大数用法1.大数的简单运算2.大数的 快速幂3. 大数的转换4. 大数的初始化

    1.大数的简单运算


    import java.util.Scanner; import java.math.BigInteger; /* * import java.util.*;//星号*(通配符)表示包中所有的类 * import java.math.*;//含BigInteger类 */ public class Main { public static void main(String[] args) { Scanner in=new Scanner(System.in); BigInteger x,y,z; x=in.nextBigInteger(); y=in.nextBigInteger(); // 大数运算方法 System.out.println(x.add(y)); // x+y System.out.println(x.subtract(y)); // x-y System.out.println(x.divide(y)); // x/y System.out.println(x.multiply(y)); // x*y System.out.println(x.mod(y)); // x%y System.out.println(x.xor(y)); // 异或 System.out.println(x.gcd(y)); // x,y 绝对值的最大公因数 x System.out.println(x.modInverse(y)); // 逆元 返回值为 (x -1 mod m) x分之1 } }

    2.大数的 快速幂


    x.pow(y) 计算 x^y x为BigInteger类型, y 必须为int 类型 x.modPow(y,z) 计算 x^y%z x,y,z 为BigInteger 类型 import java.util.Scanner; import java.math.BigInteger; public class Main { public static void main(String[] args) { Scanner in=new Scanner(System.in); BigInteger x,y,z; x=in.nextBigInteger(); y=in.nextBigInteger(); z=in.nextBigInteger(); System.out.println(x.pow(y.intValue()) ); System.out.println(x.modPow(y,z) ); } }

    3. 大数的转换


    x.doubleValue(); // 转换为 double x.intValue(); //转换为 int x.longValue(); // 转换为 long 静态方法 BigInteger.valueOf(x) // 返回一个BigInteger x ,将long 类型的x 变成 BigInteger类型 import java.util.Scanner; import java.math.BigInteger; public class Main { public static void main(String[] args) { Scanner in=new Scanner(System.in); BigInteger x; x=in.nextBigInteger(); System.out.println(x.doubleValue()); System.out.println(x.intValue()); System.out.println(x.longValue()); } }

    4. 大数的初始化


    大数常量 BigInteger.ZREO 常量0 BigInteger.ONE 1 BigInteger.TEN 10 静态方法 BigInteger.valueOf(long x) // 返回一个BigInteger x ,将long 类型的x 变成 BigInteger类型 import java.util.Scanner; import java.math.BigInteger; public class Main { public static void main(String[] args) { Scanner in=new Scanner(System.in); final int N=(int) 1e5; // 声明常量N 类似C++中的const int N=1e5 //java中的1e4是double类型,需要强制转换 //final关键字表示变量无法赋值修改 // 大数数组的创建 BigInteger a[]= new BigInteger[N+5]; // 大数 常量的声明 BigInteger one=BigInteger.ONE; // 1 BigInteger zero = BigInteger.ZERO; // 0 BigInteger y=BigInteger.valueOf(1000); // 声明大数1000 } }

    ``

    Processed: 0.018, SQL: 10