大数处理以及用法

                                       大数的相关操作

创建大数

  • BigInteger a=new BigInteger("123456");//参数一定要是字符串

  • BigInteger a=BigInteger.valueOf(123);//参数可以是int或long,不能是小数

 

大数赋值

BigInteger a=in.nextBigInteger();

 

大数运算

  • a.add(b);//加

  • a.subtract(b);//减

  • a.divide(b);//除

  • a.multiply(b);//乘

 

大数比较

  • a.equals(b);//如果a、b相等返回true否则返回false

  • a.compareTo(b);//a小于b返回-1,等于返回0,大于返回1

 

常用方法(返回值也是大整型)

  1. a.mod(b);//求余,除数不能是负数。无论被除数是不是正数,结果都是正数

  2. a.remainder(b);//求余,除数可以负数。两个操作数只要有一个是负数,结果即为负数

  3. a.gcd(b);//求最大公约数

  4. a.max(b);//求最大值

  5. a.min(b);//求最小值

 

BigInteger中的常数

  • BigInteger.ZERO//大整数0

  • BigInteger.ONE//大整数1

  • BigInteger.TEN//大整数10

例题学习(杭电1002):

大数处理以及用法_第1张图片

代码实现:

import java.math.BigInteger;
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int t=1;
        while(n-->0){
            BigInteger a = sc.nextBigInteger();
            BigInteger b = sc.nextBigInteger();
            BigInteger c = a.add(b);
            System.out.println("Case "+t+":");
            System.out.println(a+" + "+b+" = "+c);
            if(n!=0) {
                System.out.println();
            }
        t++;
        }

    }

            }

例题学习(杭电1042):

大数处理以及用法_第2张图片

代码实现:

import java.math.BigInteger;
    import java.util.*;

    public class Main {


        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            while(sc.hasNext()){
               int n =sc.nextInt();
               BigInteger sum=BigInteger.ONE;
                for (int i = 1; i <=n ; i++) {
                    sum=(sum.multiply(BigInteger.valueOf(i)));
                }
                System.out.println(sum);

            }
        }
    }

                                                  希望大家跟我一起有所收获

最后.............我爱饭饭!!!!!!

你可能感兴趣的:(算法篇)