public static void main(String[] args) {
    BigDecimal result = pow(7, 77777);
}

public static BigDecimal pow(int num, int n) {
    BigDecimal result = new BigDecimal(num);
    if (n == 0) {
        return new BigDecimal(1);
    }
    int m = Math.abs(n);
    for (int i = 0; i < m - 1; i++) {
        result = result.multiply(new BigDecimal(num));
        System.out.println(num+"的"+(i+2)+"次方为:"+result.toString());
    }

    for (int i = 0; i < m - 1; i++) {
        result = result.divide(new BigDecimal(num));
    }
    System.out.println("回退结果为:"+result.toString());
    return n > 0 ? result : new BigDecimal(1).divide(result);

}


因为Math.pow() 方法返回值为double,某些情况结果较大的时候double会存储不下。

可以使用 BigDecimal类进行计算,其内部使用 BigInteger 范围更大

java n次方函数 java中n次方怎么写_i++