完美數字是其因素之和的總和,不包括其自身。第一個完美數是6,因爲6 = 1 + 2 + 3。第二個完美數是28,等於1 + 2 + 4 + 7 + 14.第三個是496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248.在每種情況下,數字是除自身以外的所有因素的總和。JAVA ArrayIndexoutofBoundException問題
編寫一個名爲henry的方法,它接受兩個整數參數i和j並返回第i個和第j個完美數字的總和。舉例來說,henry(1,3)應該返回502,因爲6是第一個完美數字,496是第三個完美數字並且6 + 496 = 502。
我已經完成了這項工作::但是這顯示了ArrayIndexOutOfBoundException在這一行temp [index] = j;請幫我解決這個問題OutOfBound,謝謝..
public static int henry (int a, int b){
List<Integer> arr = new ArrayList<Integer>();
int henryNumber = 0;
for(int i=4;;i++){
List<Integer> temp = new ArrayList<Integer>();
int sum = 0;
for(int j = 1; j<i; j++){
if(i%j == 0) { temp.add(j); }
}
for (Integer item : temp) { sum+=item; }
if(sum == i) arr.add(i);
if(arr.size() == b) {
henryNumber = arr.get(a-1) + arr.get(b-1);
break;
}
}
return henryNumber;
}
請張貼確切的例外。它應該告訴你'j'的價值。另外,請將參數添加到產生異常的調用中。 – Turing85
當然,索引超出範圍。數組長度爲0!沒有索引可能會在界限!你爲什麼不使用這個列表? – user2357112
你的數組總是空的,據我所知 - 所以沒有數組訪問表達式,*不會拋出異常... –