0

奇妙な方法で配列を反復処理しようとしています。いい方法が思いつきません。一度に2列だけ、最初の2行を繰り返す必要があります。したがって、一度に 4 つのインデックス位置。列がなくなるまで最初の 2 行を続けてから、次の 2 行に進みます。行がなくなるまでこれを行います。配列は常に偶数の行と列 (2, 4 , 6) であると想定できますが、それらが正方形であるとは限りません。最終的には 4x6 などになる可能性があります。また、可能な最小の配列は 4x4 になります。

助言がありますか?ハードコーディングするだけでなく、空白を描いています。行の長さを求め、それを 2 で割り、それを何度も繰り返しますか?

例: 2 次元配列があります。4X4です。つまり、4 要素の正方形の「ブロック」です。ブロックは 2x2 です。したがって、最初に操作する必要がある最初のブロックは、インデックス位置 [0][0],[0][1],[1][0],[ にあります。 1][1]。

4

1 に答える 1

0
Iterate rows  r = 0;(r +1) < r_max; r+=2  
   Iterate colums c = 0; (c+1) < c_max; c +=2  
      operate on r, r+1 and c,c+1

「2」がハードコーディングされていると思われる場合は、簡単にパラメーター化できますが、「操作」ステージでは、目的に応じてさらに 2 つのループが必要になる場合があります。そうでなければ、これはまったく問題ありません。

一番上にチェックまたはアサートを追加して、あなたの言うことがあなたの仮定であることを確認します

于 2013-09-11T08:51:25.793 に答える