zoukankan      html  css  js  c++  java
  • JAVA高精度模板

    刚开始还坚持用C++写高精来着,后来发现JAVA写高精方便太多了,所以也来学习一下JAVA高精度的模板。

    参考:https://www.cnblogs.com/imzscilovecode/p/8833230.html

         https://blog.csdn.net/qq_41428565/article/details/80211938

    1. valueOf(parament); 将参数转换为制定的类型

    比如 int a=3;

    BigInteger b=BigInteger.valueOf(a);
    则b=3;
    String s=”12345”;
    BigInteger c=BigInteger.valueOf(s);

    则c=12345;

    2. BigInteger构造函数:
    一般用到以下两种:
    BigInteger(String val);
    将指定字符串转换为十进制表示形式;
    BigInteger(String val,int radix);
    将指定基数的 BigInteger 的字符串表示形式转换为 BigInteger

    3. 基本常量:

    A=BigInteger.ONE 1

    B=BigInteger.TEN 10

    C=BigInteger.ZERO 0

    import java.util.*;
    import java.math.*;
    
    public class Main {
        public static void main(String []args) {         
            Scanner sc=new Scanner(System.in);
            BigInteger a=sc.nextBigInteger();
            BigInteger b=sc.nextBigInteger();
            int n=sc.nextInt();
            BigDecimal d=sc.nextBigDecimal();
            BigInteger e=sc.nextBigInteger();
            String str=sc.nextLine();
             
            /*
            //d为int型,a,b,c都为大数 
            c=a.add(b);             //  相加 
            c=a.subtract(b);       //    相减 
            c=a.multiply(b);          // 相乘 
            c=a.divide(b);        // 相除取整 
            c=a.gcd(b);          //  最大公约数 
            c=a.remainder(b);   //  取余 
            c=a.mod(b);         // a mod b 
            c=a.abs();           // a的绝对值 
            c=a.negate();        // a的相反数 
            c=a.pow(d);           // a的b次幂        d为int型     
            c=a.max(b);           //  取a,b中较大的 
            c=a.min(b);                //  取a,b中较小的 
            d=a.compareTo(b);      //  比较a与b的大小   d=-1小于 d=0等于 d=1大于  d为int型 
            a.equals(b);            //  判断a与b是否相等    相等返回true  不相等返回false
            */
             
            //加减乘除add,subtract,multiply,divide
            System.out.println(a.add(b));
            System.out.println(a.subtract(b));
            System.out.println(a.multiply(b));
            System.out.println(a.divide(b));
             
            //阶乘
            //注意BigInteger.valueOf()的使用
            for(int i=1;i<=n;i++) {
                c=c.multiply(BigInteger.valueOf(i));
            }
            System.out.println(c);
            //比较大小
            int flag=a.compareTo(b);
            if(flag==-1) {
                System.out.println("a<b");
            } else if(flag==0) {
                System.out.println("a=b");
            } else {
                System.out.println("a>b");
            }
            //大数的进制转换
            //先将字符串转化为10进制大数,然后将大数转化为2进制字符串
            e=new BigInteger(str,10);
            String tmp=e.toString(2);
            /*
             d=a.intValue();      //       将大数a转换为 int 类型赋值给 d 
             e=a.longValue();     //       将大数a转换为  long 类型赋值给 e 
             f=a.floatValue();    //       将大数a转换为  float 类型赋值给 f 
             g=a.doubleValue();   //       将大数a转换为  double 类型赋值给 g 
             s=a.toString();      //     将大数a转换为 String 类型赋值给 s
             a=BigInteger.valueOf(e);  // 将 e 以大数形式赋值给大数 a   e只能为long或int 
             */
            sc.close();
        }
    }
  • 相关阅读:
    矩阵分析 p13~p20
    矩阵分析 p1~p13
    复变函数2
    口语80篇(1-2)
    复变函数1
    背单词方法
    writing practice
    将博客搬至CSDN
    windows内核编程 白话设备栈
    sfliter__except_handler4
  • 原文地址:https://www.cnblogs.com/FrankChen831X/p/10576400.html
Copyright © 2011-2022 走看看