我想知道是否有办法将BigInteger
个变量相乘,因为*
运算符无法应用于BigInteger
。
所以我想知道是否可以在不使用BigIntegers
运算符的情况下将两个*
相乘。
答案 0 :(得分:18)
您使用BigInteger
s multiply()
方法,如下所示:
BigInteger int1 = new BigInteger("131224324234234234234313");
BigInteger int2 = new BigInteger("13345663456346435648234313");
BigInteger result = int1.multiply(int2)
我应该在不久前指出BigInteger
是不可变的。因此,操作的任何结果都必须存储到变量中。操作符或操作数永远不会更改。
答案 1 :(得分:3)
更容易实施:
int i = 5;
BigInteger bigInt = new BigInteger("12345678901");
BigInteger result = bigInt.multiply(BigInteger.valueOf(i))
答案 2 :(得分:1)
您可以在BigInteger中使用multiply(BigInteger)方法。所以:
BigInteger result = someBigInt.multiply(anotherBigInt);
答案 3 :(得分:0)
结果乘以这些特定因子
A:131224324234234234234313
B:13345663456346435648234313
可能是这个(我希望我是对的):
R:1751275668516575787795211751170772134115968581969
两者都被认为是两个正整数。并使用的技术 是Karatsuba的方法
int ab =(mul1)* 10 ^ n +(mul3 - mul1 - mul2)* 10 ^ n / 2 + mul2;