2011-05-19 32 views
0

我正在解決這個problem6,我什至不知道答案,但是,當我完成時,我認爲我會得到好的,但我的答案失敗,7910956276398901303這是我的回答,你能幫我解決這個錯誤,我不明白什麼是更正我的功率函數總和的誤差是多少?

這是正確的代碼

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

}

回答

3

我認爲這個問題是使用Math.pow(...)。切換到BigDecimal.pow(...),以避免溢出

+0

它不是關於代碼,它是答案,我認爲這是正確的,但不是,我不知道爲什麼我的答案是錯的 – bentham 2011-05-19 22:44:35

+1

嘗試使用BigDecimal.pow(...)像我說的。這就是爲什麼答案可能是錯誤的 – kuriouscoder 2011-05-19 22:45:34

+0

感謝您的幫助,我已經接受答案轉換爲BigDecimal的所有代碼,但您是如何找到它的?感謝所有人 – bentham 2011-05-19 22:56:55