1

私が言ったように、私は二次対角線を介して多次元配列を「スクロール」したいと思います。私の希望する入力は次のとおりです。(ケースa)[C++またはJavaのどちらでもかまいません]

注+編集:順序はランダムではありません。一番下の1から始まり、上に向かっていきます。

これは可能ですか?

そうでない場合は、コードの少なくとも半分ですか?(ケースb)

// Case a:
16 15 13 10
14 12 9 6
11 8 5 3
7 4 2 1

// Case b:
0 0 0 1
0 0 9 6
0 8 5 3
7 4 2 1
4

2 に答える 2

3

これは、単純なループ(これはJavaです)で実行できます。

int size = 4;
int[][] matrix = new int[size][size];
// . . .
for (int i = 0; i < size; ++i) {
    doSomethingWith(matrix[i][size - i - 1]);
}
于 2012-10-16T15:33:04.540 に答える
1
  int[][] a={{7,6,4,1},{5,3,9,6},{2,8,5,3},{7,4,2,1}};
  for(int i=0; i<a.length; i++)
  {
   for(int j=a[i].length-1; j>=a[i].length-(i+1); j--)
   {
    System.out.print(a[i][j]+",");
   }
   System.out.println();
  }
于 2012-10-16T15:49:37.413 に答える