使用大输入存储数据

时间:2014-07-03 17:26:26

标签: storage large-data

在竞争性编程网站(hackerrank)中存在一个问题,其中输入数字的范围是10 ^ 18.So,是否可以在java中存储(10 ^ 18)?如果是,则应该使用哪种数据类型用吗?

2 个答案:

答案 0 :(得分:1)

对于一些简单的HackerRank问题, BigInteger BigDecimal 适用于极大的输入,但它们通常不适用于中等/困难的问题,因为它们倾向于降低性能和大量极大输入的测试用例可能会导致超时。

  

在这种情况下,您需要采用不同的存储技术,例如一个 int 数组,数组中的每个元素代表一个大输入的数字。然后,您需要对阵列进行基于数字的算术运算。

答案 1 :(得分:0)

BigInteger.valueOf(10).pow(10000)

不需要小心,因为如果您尝试编写超过Long.MAX_VALUE的文字,BigInteger.valueOf(long)方法会给您一个编译错误。此外,构建一个更大的BigInteger很容易,比如说BigInteger.valueOf(10).pow(10000)