在一个有竞争力的编程站点(Hackerrank)中存在一个问题,其中输入数字的范围是10^18。那么,是否可以在java中存储(10^18)?如果可以,那么应该使用哪种数据类型?
发布于 2016-05-19 21:31:25
对于一些简单的HackerRank问题,BigInteger或BigDecimal确实适用于非常大的输入,但它们通常不适用于中等/困难的问题,因为它们往往会降低性能&大量极大输入的测试用例可能会导致超时。
在这种情况下,您将需要使用不同的存储技术,例如
数组,该数组的每个元素代表大输入的一个数字。然后,您将需要在数组上进行基于数字的算术来进行计算。
发布于 2014-07-04 01:33:56
BigInteger.valueOf(10).pow(10000)不需要特别小心,因为如果您试图编写一个超过Long.MAX_VALUE的文字,BigInteger.valueOf(long)方法会给您一个编译错误。此外,比方说BigInteger.valueOf(10).pow(10000),很容易构建一个更大的BigInteger
https://stackoverflow.com/questions/24559889
复制相似问题