回到念书的那会了。
package math;
import java.math.BigDecimal;
import java.math.BigInteger;
/**
* 大数据
*
* @author ZengWenfeng
* @date 2016.06.01
*/
public class BigNumber
{
/**
* 次方
*
* @author ZengWenFeng
* @param v1
* @param v2
* @return
*/
public static BigInteger pow(int x1, int x2)
{
BigInteger b1 = new BigInteger(Integer.toString(x1));
return b1.pow(x2);
}
/**
* 仅测试使用
*
* @param args
*/
public static void main(String[] args)
{
BigInteger bi = new BigInteger("-0000199999999992222222222222222222222222222222");
System.out.println(bi.toString());//-199999999992222222222222222222222222222222
/**
* 2^31 & 3^21
*
* 分而治之,拆分简化
* 解:
* ∵
* 2 ^ 31 < 3 ^ 21
* 2 x (2 ^ 30) < 3 x (3 ^ 20)
* 2 x (2 ^ (3 x 10)) < 3 x (3 ^ (2 x 10))
* 2 x ((2 ^ 3) ^ 10) < 3 x ((3 ^ 2) ^ 10)
* 2 x (8 ^ 10) < 3 x (9 ^ 10)
* ∵
* 2 < 3
* 8 < 9
* 8 ^ 10 < 9 ^ 10
* ∴
* 2 x (8 ^ 10) < 3 x (9 ^ 10)
* 2 ^ 31 < 3 ^ 21
* @author ZengWenFeng
* @date 2022.05.04
* @mobile 13805029595
*/
System.out.println(pow(-2, 31));
System.out.println(pow(2, 31));//2^31 = 2147483648
System.out.println(pow(3, 21));//3^21 = 10460353203
}
}
|