我需要帮助我的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;
}
}
答案 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;}