【问题标题】:how to take a input of very big length in java如何在java中输入非常长的输入
【发布时间】:2015-02-17 16:07:06
【问题描述】:

我想输入一个最大值为 10^100000 的整数。

如何在java中接受这样的输入

我拿了

long num;

但是没有用

有什么建议吗?

【问题讨论】:

  • 使用BigInteger
  • BigInteger,或使用 apfloat。

标签: java input io


【解决方案1】:

您正在寻找 BigInteger 类,它是一个任意精度的整数类。

您可以使用String 参数创建一个,如下所示:

String longIntegerString = "10000000000000000000000000000000000000000000000000000000000000000";
BigInteger bigInteger = new BigInteger(longIntegerString);

该类包含add()、subtract()、multiply()、divide()、mod()等数学函数。

在此处查看 javadocs:

BigInteger

【讨论】:

  • 我相信是 -(2^(2^32)) - 2^(2^32 -1) - 1。
  • 在你给出的例子中,让我们说我想要一个子字符串。但是 substring 方法只需要 (int) 作为参数如何通过它?
  • 让我纠正一下,首先:范围是:-(2^(2^31)) 到 2^(2^31 -1) - 1
  • 其次,让我澄清一下:您想将 BigInteger 传递给 String.substring(int a, int b) 方法?
  • 不,实际上我的目标是从那个大整数中找到一个子字符串并取模
【解决方案2】:

是的,使用 BigInteger 存储大量输入。

您可以将输入作为文本,然后使用 BigInteger 对其进行解析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    相关资源
    最近更新 更多