Java 我的幂函数和的错误是什么?

Java 我的幂函数和的错误是什么?,java,math,biginteger,Java,Math,Biginteger,我正在解决这个问题,我甚至不知道答案,但是,当我完成时,我想我会没事的,但是我的答案失败了,7910956276398901303这是我的答案1303,你能帮我解决这个错误吗,我不明白我的逻辑,代码是什么,它只是一个简单的幂函数 已更正 这是正确的代码 导入java.math.BigDecimal 公共类问题6{ static BigDecimal sum = BigDecimal.valueOf(0); static BigDecimal num = BigDecimal.valueOf(0)

我正在解决这个问题,我甚至不知道答案,但是,当我完成时,我想我会没事的,但是我的答案失败了,7910956276398901303这是我的答案1303,你能帮我解决这个错误吗,我不明白我的逻辑,代码是什么,它只是一个简单的幂函数

已更正

这是正确的代码

导入java.math.BigDecimal

公共类问题6{

static BigDecimal sum = BigDecimal.valueOf(0);
static BigDecimal num = BigDecimal.valueOf(0);

public static void main(String args[]) {
    int n = 2;

    for (int i = 1; i <= 15; i++) {
        sum = sum.add(power(i, n));
        n++;
    }
    System.out.println(sum);

    String number = sum.toString();

    System.out.println(number.substring(number.length() - 4, number.length()));

}

public static BigDecimal power(int x, int y) {

    num = BigDecimal.valueOf(x).pow(y).add(BigDecimal.valueOf(y).pow(x));

    return num;
}
static BigDecimal sum=BigDecimal.valueOf(0);
静态BigDecimal num=BigDecimal.valueOf(0);
公共静态void main(字符串参数[]){
int n=2;

对于(int i=1;i我认为问题在于使用
Math.pow(…)
。切换到
BigDecimal.pow(…)
以避免溢出我认为问题在于使用
Math.pow(…)
。切换到
BigDecimal.pow(…)
为了避免溢出

这与代码无关,我认为答案是正确的,但我不知道为什么我的答案是错误的尝试使用BigDecimal.pow(…)就像我说的。这就是为什么答案可能是错误的。谢谢你的帮助,我得到了被接受的答案,所有的代码都改成了BigDecimal,但你是怎么找到的呢?谢谢你,所有这些都与代码无关,我认为答案是正确的,但不是,我不知道为什么我的答案是错误的尝试使用BigDecimal.pow(…)就像我说的。这就是为什么答案可能是错误的。谢谢你的帮助,我得到了被接受的答案,所有的代码都改成了BigDecimal,但是你是怎么找到它的?谢谢你的帮助