質問: `基本情報技術者` 次のアルゴリズムの問題の質問です。 要素番号が0から始まる配列TANGOがある。n個の単語がTANGO[1]から TANGO[n]に入っている。 図は、n番目の単語をTANGO[1]に移動するために、TANGO[1]からTANGO[n-1]の単語を順に一つずつ後ろにずらして単語表を再構成する流れ図である。 aに入れる処理として、適切なものは何ですか? ※ここで言ってるaとはループで挟まれている、 Tango[i]→Tango[i+1] です。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/e292da7eb50d2a42bf56f47e90e20f2d.png) ここでわからないのが、ループの条件では減らしている一方で 配列の要素番号を増やしてる点です。 また、解説で、上から単語を移動すると、移動していない単語が 消えるが、下から移動すると、移動済みなので、問題ないという部分が理解できないです。 長々となりましたが、ご教授宜しくお願い致します。
回答: 配列の数4で 配列番号 3 にものを配列番号 1 に移動させる例で考えてみます。 ``` D を 配列番号 0 に移動させたあと、左から右に移動していった場合 0 1 2 3 [ ] [B] [C] [D] // 配列番号 3 の D を配列番号 0 にコピー [D] [B] [C] [D] // 配列番号 1 の B を配列番号 2 にコピー [D] [B] [B] [D] // C が消えてしまった! // 配列番号 2 の B を配列番号 3 にコピー [D] [B] [B] [B] // D が消えてしまった! // 配列番号 0 の D を配列番号 1 にコピー [D] [D] [B] [B] ``` ``` D を 配列番号 0 に移動させたあと、右から左に移動していった場合 0 1 2 3 [ ] [B] [C] [D] // 配列番号 3 の D を配列番号 0 にコピー [D] [B] [C] [D] // 配列番号 2 の C を配列番号 3 にコピー [D] [B] [C] [C] // 配列番号 1 の B を配列番号 2 にコピー [D] [B] [B] [C] // 配列番号 0 の D を配列番号 1 にコピー [D] [D] [B] [C] ```