0

次のようなものから配列を作成したい:

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}

これに:

{6, 5, 4, 3, 2, 1, 0, 13, 12, 11, 10, 9, 8, 7, 20, 19, 18, 17, 16, 15, 14}

しかし、私は方法がわかりません。この方法は、私が計画しているコードの優れた代替手段として役立つと思います。(私はDr.Javaを使用しているので、インポートされたファイルはありません)

という整数配列の場合integer[]:

    (for j = 0; j < 3; j++) {
            (for k = 0; k = 6; k++) {
                int newj = j+1;
                int array = integer[k*newj];
                integer [k*newj] = integer[6 - k*newj -1];
                integer[6 - k*newj - 1] = array;
            }
     }

しかし、これはうまくいきません。

何かアドバイス?これは課題の一部ではありませんが、1 週間以内に行われる試験の一部であり、これを確認したいと思います。

4

1 に答える 1

1

配列には 21 個の要素があります。あなたが言及した説明から、あなたはそれを3つの部分に分けたいと思っています。各パーツには 7 つの要素があり、それらを反転させます。

各パーツに対して、スワップデータ操作を行うことができます。

  1. 1 番目の要素を 7 番目の要素と交換します。
  2. 2 番目の要素を 6 番目の要素でソープします。
  3. 3 番目の要素を 5 番目の要素と交換します。... ... ...

注:データスワップの終了条件は 7/2です。これは、7 つの要素の中間のインデックスです。

ここでもう 1 つ、分割された各パーツの開始インデックス終了インデックスを決定します。

次のコードは、要件に対して機能しています。これがあなたの助けになることを願っています。

    for (int j = 0; j <3; j++) {
        for (int k = 0; k <7/2; k++) {
            int newj = j+1;
            int array = integer[7*newj-k-1];
            integer[7*newj-k-1]= integer [7*j+k];
            integer [7*j+k] = array;
        }
    }
于 2013-10-27T00:06:42.483 に答える