Метод BigInteger add () в Java с примерами

Опубликовано: 7 Февраля, 2022


Java.math.BigInteger.add (BigInteger val) используется для вычисления арифметической суммы двух BigInteger. Этот метод используется для поиска арифметического сложения больших чисел диапазона, намного превышающего диапазон наибольшего типа данных double java без ущерба для точности результата. Этот метод выполняет операцию над текущим BigInteger, с помощью которого этот метод вызывается и BigInteger передается в качестве параметра.

Синтаксис:

общедоступное BigInteger add (BigInteger val)

Параметры: этот метод принимает параметр val, который является значением, добавляемым к этому BigInteger.

Возвращаемое значение: этот метод возвращает BigInteger, который содержит сумму (this + val).

Ниже программы используются для иллюстрации метода add () BigInteger.

Example 1:

// Java program to demonstrate
// add() method of BigInteger
  
import java.math.BigInteger;
  
public class GFG {
    public static void main(String[] args)
    {
        // BigInteger object to store result
        BigInteger sum;
  
        // For user input
        // Use Scanner or BufferedReader
  
        // Two objects of String created
        // Holds the values to calculate the sum
        String input1
            = "5454564684456454684646454545";
        String input2
            = "4256456484464684864864864864";
  
        // Convert the string input to BigInteger
        BigInteger a
            = new BigInteger(input1);
        BigInteger b
            = new BigInteger(input2);
  
        // Using add() method
        sum = a.add(b);
  
        // Display the result in BigInteger
        System.out.println("The sum of "
                           + a + " and " + b + " "
                           + " is " + sum + " ");
    }
}

Выход:

The sum of
5454564684456454684646454545
and
4256456484464684864864864864
is
9711021168921139549511319409

Как видно из приведенного выше примера, данные полностью уточняются даже после добавления числа очень большой длины.

Example 2:

// Java program to demonstrate
// add() method of BigInteger
  
import java.math.BigInteger;
  
public class GFG {
    public static void main(String[] args)
    {
        // BigInteger object to store result
        BigInteger sum;
  
        // double variable
        // To store result as double
        double d;
  
        // For user input
        // Use Scanner or BufferedReader
  
        // Two objects of String
        // Holds the values to sum
  
        // The number"s length is of 400 digits
        // Which is out of range of double
        String input1 = "012345678901234567"
                        + "8901234567890123"
                        + "4567890123456789"
                        + "0123456789012345"
                        + "6789012345678901"
                        + "2345678901234567"
                        + "8901234567890123"
                        + "4567890123456789"
                        + "0123456789012345"
                        + "6789012345678901"
                        + "2345678901234567"
                        + "8901234567890123"
                        + "4567890123456789"
                        + "0123456789012345"
                        + "6789012345678901"
                        + "2345678901234567"
                        + "8901234567890123"
                        + "4554324324362432"
                        + "7674637264783264"
                        + "7832678463726478"
                        + "3264736274673864"
                        + "7364732463546354"
                        + "6354632564532645"
                        + "6325463546536453"
                        + "6546325463546534"
                        + "6325465345326456"
                        + "4635463263453264"
                        + "654632498739473";
        String input2 = "0123456789012345"
                        + "6789012345678901"
                        + "2345678901234567"
                        + "8901234567890123"
                        + "4567890123456789"
                        + "0123456789012345"
                        + "6789012345678901"
                        + "2345678901234567"
                        + "8901234567890123"
                        + "4567890123456789"
                        + "0123456789012345"
                        + "6789012345678901"
                        + "2345678901234567"
                        + "8901234567890123"
                        + "4567890123456789"
                        + "0123456789012345"
                        + "6789012345678901"
                        + "2345873271893718"
                        + "2974897146378481"
                        + "7489127847281478"
                        + "2174871248721847"
                        + "8748327463756475"
                        + "6745781641263981"
                        + "2839721897438974"
                        + "3286574365764576"
                        + "2376914689217817"
                        + "4362473624721647"
                        + "61247612748612746";
  
        // convert the string input to BigInteger
        BigInteger a
            = new BigInteger(input1);
        BigInteger b
            = new BigInteger(input2);
  
        // Using add() method
        sum = a.add(b);
  
        // Display the result in BigInteger
        System.out.println("The sum of "
                           + a + " and " + b + " "
                           + " is " + sum);
  
        // Using double to hold  the result
        d = Double.parseDouble(sum.toString());
  
        // Display the result in double
        System.out.println("Using double, Sum is "
                           + d);
    }
}

Выход:

The sum of
1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234554324324362432767463726478326478326784637264783264736274673864736473246354635463546325645326456325463546536453654632546354653463254653453264564635463263453264654632498739473
and
1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234587327189371829748971463784817489127847281478217487124872184787483274637564756745781641263981283972189743897432865743657645762376914689217817436247362472164761247612748612746
is
2469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469135780246913578024691357802469141651513734262516435190263143967454631918743000751861146858652219747883919392209327966909307740297653290433886520376204000415840169342671082000882825735618025902245247352219
Using double, Sum is Infinity

Как видно из вышеприведенного вывода, использование double для больших целых чисел - не лучший выбор.
Ссылка: https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/math/BigInteger.html#add(java.math.BigInteger)

Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .