0

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

}
4

7 に答える 7

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;
}
于 2012-11-02T05:29:59.730 に答える
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。したがって、ループは、配列を調べて、配列内の現在の位置に対して<=である位置にあるすべての値を合計することを示しています。

于 2012-11-02T05:35:49.890 に答える
0
for (int j = 0; j <= i; j++) 
    newArray[i]  += array[j]);
于 2012-11-02T05:25:52.063 に答える
0

他の部分を試してください

 for (int j = 0; j <= i; j++) 
     // newArray[i]  =  (array[i] + array[j]);
     newArray[i]  += array[j];
于 2012-11-02T05:27:39.877 に答える
0

これを行うだけです

 else 
        newArray[i]  = newArray[i-1] + array[i]; 
于 2012-11-02T05:28:57.880 に答える
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];
于 2012-11-02T05:29:16.503 に答える
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;}
于 2015-03-31T15:45:39.607 に答える