в чем моя ошибка в сумме степенных функций? - PullRequest
0 голосов
/ 20 мая 2011

Я решал эту проблему6 , я даже не знаю ответа, но, когда я закончил, я думаю, что я получу хорошо, но мои ответы не удается, 7910956276398901303 это мой ответ 1303 , можете ли вы помочь мне с этой ошибкой, я не понимаю, что не так, моя логика, код ??, Это просто простая функция питания

Исправлено

этоправильный код

import java.math.BigDecimal;

открытый класс 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 Ответ

3 голосов
/ 20 мая 2011

Думаю, проблема в использовании Math.pow(...).Переключитесь на BigDecimal.pow(...), чтобы избежать переполнения

...