以2个元素的幂对ArrayList的内容求和的最有效方法?

时间:2014-04-23 04:29:07

标签: java algorithm

我有一个大脑放屁,无法想到用2元素的幂来计算数组总和的算法。

这绝对是错的,但我无法看清楚。

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

1 个答案:

答案 0 :(得分: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);
    }
}