我一直在研究一个java程序,我需要在其中计算并将巨大的值存储到数组中。到目前为止,我通过将输入的变量插入到指数函数中来获得值:
Math.pow(7,x);
我决定将值存储到BigInteger数组中,但我不知道如何使用BigInteger提供的提供的构造函数存储这些常规操作值。对于'x'值,我实际上使用了相当大的数字,它们可以存储长度可以存储的指定值。我似乎完全围绕着我想到的每一个解决方案......只是这样做:
bigArray[i] = new BigInteger((long)Math.pow(7,x));
不起作用,因为我处理大于100的值为x。我该怎么办?
答案 0 :(得分:9)
待办事项
BigInteger bi = BigInteger.valueOf(7).pow(x);
答案 1 :(得分:3)
已经提供了aioobe的答案,建议使用BigInteger.valueOf是正确的,但我想提供一些额外的信息。
正如他所说:
BigInteger bi = BigInteger.valueOf(7).pow(x);
但是让我们看一下关于" valueOf()"的Java文档。方法:
"这个"静态工厂方法"优先于(长)构造函数提供,因为它允许重用经常使用的BigIntegers。"
请参阅:http://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html#valueOf(long)
答案 2 :(得分:0)
将字符串作为BigInteger构造函数的参数提供,例如
BigInteger bigInteger = new BigInteger("1000000000000000000000000000000000000000000000000000000000000000000");
在你的情况下
BigInteger bigInteger = new BigInteger("7").pow(x);