Использование оператора BigInteger Multiply - PullRequest
9 голосов
/ 07 октября 2010

Мне было интересно, есть ли способ умножения BigInteger переменных вместе, потому что оператор * нельзя применить к BigInteger.

Поэтому мне было интересно, можно ли умножить два BigIntegers вместе без использования оператора *.

Ответы [ 4 ]

18 голосов
/ 07 октября 2010

Вы используете метод BigInteger s multiply(), например, так:

BigInteger int1 = new BigInteger("131224324234234234234313");
BigInteger int2 = new BigInteger("13345663456346435648234313");
BigInteger result =  int1.multiply(int2) 

Я должен был отметить, что BigInteger неизменен.Таким образом, любой результат операции должен быть сохранен в переменной.Оператор или операнд никогда не меняются.

3 голосов
/ 17 июня 2015

Более простой способ реализации:

int i = 5;
BigInteger bigInt = new BigInteger("12345678901");
BigInteger result = bigInt.multiply(BigInteger.valueOf(i))
1 голос
/ 07 октября 2010

Вы можете использовать метод умножения (BigInteger) в BigInteger. Итак:

BigInteger result = someBigInt.multiply(anotherBigInt);

BigInteger в Java API

0 голосов
/ 05 января 2017

Результат, умножающий эти конкретные факторы

A: 131224324234234234234313

B: 13345663456346435648234313

Может быть этот (надеюсь, я прав):

R: 1751275668516575787795211751170772134115968581969

Оба считаются двумя натуральными числами.В качестве метода был использован метод Карацубы

int ab = (mul1) * 10 ^ n + (mul3 - mul1 - mul2) * 10 ^ n / 2 + mul2;

...