功率函数之和的误差是多少?

时间:2011-05-19 22:33:43

标签: java math biginteger

我正在解决这个问题problem6,我甚至不知道答案但是,当我完成时我认为我会好的,但我的答案会失败,7910956276398901303这是我的回答 1303 ,你能帮我解决这个错误,我不明白我的逻辑,代码是什么问题,它只是一个简单的电源功能

校正的

这是正确的代码

import java.math.BigDecimal;

public class Problema6 {

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;
}

}

1 个答案:

答案 0 :(得分:3)

我认为问题在于使用Math.pow(...)。切换到BigDecimal.pow(...)以避免溢出