用每个元素的总和替换数组的方法

时间:2012-11-02 05:20:34

标签: java arrays methods

我需要帮助我的Java考试的概念。我需要编写一个接受数组并返回一个新数组的方法,每个元素都是前面元素的总和。即第一个数组是{3,2,1,4},方法返回的数组是{3,5,6,10}

到目前为止,这是我的代码:

public class testPrac1 {
public static void main(String[] args){
    int[] array = {3, 2, 1, 4};

    for (int value: sum(array)) {
        System.out.print(value);
    }
}
public static int[] sum(int[] array) {
    int[] newArray = new int[array.length];

    for (int i = 0; i < array.length ; i++) {
        if (i == 0){
            newArray[i] = array[0];
        }
        else 
            for (int j = 0; j < i; j++) 
                    newArray[i]  =  (array[i] + array[j]);
    }

    return newArray;
}

}

7 个答案:

答案 0 :(得分:1)

只是为了加强它,怎么样:

public static int[] sum(int[] array) {
  int[] newArray = new int[array.length];

  for (int i = 0; i < array.length; i++) {
    newArray[i] = array[i];
    if (i > 0) {
      newArray[i] += newArray[i-1];
    }
  }

  return newArray;
}

答案 1 :(得分:0)

for (int j = 0; j <= i; j++) 
    newArray[i]  += array[j]);

答案 2 :(得分:0)

尝试你的其他部分

 for (int j = 0; j <= i; j++) 
     // newArray[i]  =  (array[i] + array[j]);
     newArray[i]  += array[j];

答案 3 :(得分:0)

就这样做

 else 
        newArray[i]  = newArray[i-1] + array[i]; 

答案 4 :(得分:0)

前k个元素的总和与第一个k-1个元素加上第k个元素的总和相同。

在你给出的例子中:

{3,2,1,4} --> {3,5,6,10}
3 = 3
3+2 = 5
3+2+1 = 5+1 = 6
3+2+1+4 = 6+4 = 10

所以你真正需要的是:

newArray[0]=array[0];
for(int i=1; i<array.length; i++)
    newArray[i]=newArray[i-1]+array[i];

答案 5 :(得分:0)

     public static int[] sum(int[] array) {
        int[] newArray = new int[array.length];

        for (int i = 0; i < array.length ; i++) {
          for (int j = 0; j <= i; j++) 
             newArray[i]  += array[j];
        }
        return newArray;
      }

您不需要条件,因为<=会处理0的情况。所以循环只是说通过数组并总结了&lt; =到数组当前位置的位置的所有值。

答案 6 :(得分:0)

为什么不试试这段简单的代码:

int [] array = {3,5,1,4};
int newarray[]=new int[array.length];
int sum=0;
for(int i=0;i<array.length;i++)
        {sum=sum+array[i];
        newarray[i]=sum;}