1)課題
左側のいくつかのアドレス番号があります。
それが指す文字を1文字目とし、それに続く文字を「0」に遭遇するまで、全て右側に運んで下さい。
2)考え方
入社29年目で学んだ間接指定を使っていきます. 左のコンベアにあるパネルには一文字目のアドレスを書いてあります. 例えば, 左のコンベアのパネルが「4」であれば, カーペットの4番「T」の文字から右のコンベアに運べば, 上司の要求に応えられます. 手順は次のようになります.
- 左のコンベアからパネルを取り出し, カーペットの24番に置く.
- 間接指定により, カーペット24番が示すパネルを取る.
- 取ったパネルが「0」なら先頭に戻る.
- 「0」でなければ, 持っているパネルを右のコンベアに運ぶ.
- カーペット24番を1増やす.
- 2行目に戻り, カーペットの次のパネルを取る.
3)実装
カーペットの24番に「アドレス」と名前を付けます. 上で考えた手順をそのままプログラムに落とし込みます.
見ての通り, そのままです. これを実行すると課題をクリアーできます.
サイズ目標, スピード目標共にクリアーできました.
0 件のコメント:
コメントを投稿