Math.pow()返回一个double值,只接受int作为参数... BigInteger没有查找BigInteger的函数^ BigInteger通过循环执行它需要很长时间...我还有什么方法可以丢失吗?
Thnx提前......
您可以使用BigInteger.pow()大型指数.由于10 9适合a int并且也可以完全表示为a double,因此您可以这样做:
int exp = (int) Math.pow(10, 9);
BigInteger answer = BigInteger.valueOf(2).pow(exp);
Run Code Online (Sandbox Code Playgroud)
对于大于的指数来说,这显然会被打破Integer.MAX_VALUE.但是,您可以使用BigInteger.modPow(BigInteger exponent, BigInteger m)将BigInteger另一个BigInteger作为电源,模块三分之一BigInteger.您只需要首先创建一个BigInteger大于预期答案的模型作为模数.