2014-04-23 14 views
-2

我有一個腦屁一個無法想到的算法來計算2個元素的冪數組的總和。通過2個元素的冪來總和ArrayList的內容的最有效方法?

這絕對是錯誤的,但我看不到它在哪裏。

public static void main(String[] args) { 

    ArrayList<Integer> intArray = new ArrayList<Integer>(); 

    intArray.add(1); 
    intArray.add(2); 
    intArray.add(3); 
    intArray.add(4); 
    intArray.add(5); 
    intArray.add(6); 
    intArray.add(7); 
    intArray.add(8); 
    intArray.add(9); 
    intArray.add(10); 

    int total = 0; 

    for (int x = 0; x < intArray.size(); x += 2*(int)Math.pow(2, x)) { 
     total = total + intArray.get(x); 
    } 
    System.out.println(total); 
} 
+2

你能給所需的輸入和輸出的例子嗎?嘗試寫出它應該執行的步驟,並從中獲得循環。 – Dukeling

+1

你的for循環是錯誤的。它應該是'for(int x = 0; x hammus

回答

4

這會工作:

import java.util.ArrayList; 

public class Pow2IndexSum { 
    public static void main(String[] args) { 
     ArrayList<Integer> intArray = new ArrayList<Integer>(); 

     intArray.add(1); 
     intArray.add(2); 
     intArray.add(3); 
     intArray.add(4); 
     intArray.add(5); 
     intArray.add(6); 
     intArray.add(7); 
     intArray.add(8); 
     intArray.add(9); 
     intArray.add(10); 

     int total = 0; 

     for (int x = 1; x < intArray.size(); x *= 2) { 
      total += intArray.get(x); 
     } 

     System.out.println(total); 
    } 
} 
+1

擊敗我 - touche。 – Dylon

+0

@DylonEdwards它發生了) –

相關問題