如何将两个大于 32 个字符的非常大的数字相乘,例如 100 的乘法!有122!或 22^122 和 11^200 在分而治之的帮助下,有没有人有 java 代码或 C# 代码?
问问题
5869 次
4 回答
3
您可能应该使用java.math.BigInteger。这允许整数值的表示远远超过 2^32 甚至 2^64。BigInteger 值基本上仅受程序可用内存量的限制,即 32 位系统上约 4 GB 和 64 位系统上几乎可用的物理+虚拟内存。
import java.math.BigInteger;
class Foo
{
public static void main(String args[])
{
BigInteger bigInteger100Fact = bigFactorial(BigInteger("100")); //where bigFactorial is a user-defined function to calculate a factorial
BigInteger bigIntegerBar = new BigInteger("12390347425734985347537986930458903458");
BigInteger product = bigIntegerFact.multiply(bigIntegerBar);
}
}
编辑:如果您需要,这是一个BigInteger 阶乘函数
于 2010-01-03T23:05:32.150 回答
1
于 2010-01-03T22:53:57.617 回答
0
我自己写了一个,它使用数组来实现这一点,只是为了好玩。我相信 Java 的 BigInteger 类会做同样的事情。
这是 C# 中的一个示例,可能对您有用。
于 2010-01-03T22:53:47.883 回答