gpt4 book ai didi

java - 当 Long 不够长时我该怎么办(Java)?

转载 作者:行者123 更新时间:2023-12-01 18:19:21 26 4
gpt4 key购买 nike

所以,我正在研究欧拉计划的底层。那里有很多很大的问题(其中大部分都远远超出了我的水平)。但我很快就遇到了一个大问题:

Java 不会处理大量数据。

现在,如果我有能力制作采用替代路线的快速程序,这对我来说就不是问题了。不幸的是,我不是那个人。

以问题 20 为例,它要求求 100 的数字和!我什至没有为数字解析而编写,而只是查找阶乘的代码失败了。

long onehfact = 1;
for(int i = 1; i <= 100; i++){
onehfact = onehfact * i;
System.out.println(onehfact);
}

这适用于大约 20 个序列,但开始给出随机的 19 位数字。到了 75 个序列,它只给了我零。

100! 绝对不是零。

我需要一种方法来获得令人难以置信的大数字,而科学记数法无法满足我的目的。是否有一个大型变量类型可供我使用,可以容纳 100-150 位数字?还有其他解决方案会产生相同的结果吗?

最佳答案

有一个名为 BigInteger 的类,它允许您处理和执行任意大小的数字的操作。它将为数字分配可变数量的内存。

这是文档。该类位于 java.math 包中:

http://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html

我也解决了 Java 中的 Project Euler 中的一些问题。对于处理大的非整数的其他一些问题,您需要相关的类java.math.BigDecimal:

http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html

关于java - 当 Long 不够长时我该怎么办(Java)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28012878/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com