2004da
Problem A: Hanafuda Shuffle 花札を切る
カードを切るシミュレーションの問題。カードの枚数と、切る回数が指定される。切る操作は、カードの山の上からp枚目から連続したc枚を抜き取り、山の一番上に置く。
入力
- まず、カードの枚数nと切る回数r。nとrに0が入力されたら全ての操作を終了する。
- 続いてr回の切る操作のpとc。
出力
- 切る操作をした結果、1番上に来たカードの番号を表示する。カードの山には一番下から1,2,3,・・・,nと番号が付いている。
データ構造
配列を用いる。
解答例
- 方法1:山を表す配列と、コピー用の配列の2つ用意しておき、コピーする分をコピー遙拝列に置いておいて、残りを移動してから、上書きする。
- 解答例 2004da1.c
- 方法2:配列は1つだけで、p枚目を一番上に持っていく、p+1枚目を上に持って行く、p+2枚目を・・・をc枚分繰り返せばよい。
- 解答例
- C言語 2004da2.c
- Java hana1.java Javaは入力が面倒だ。
- 解答例
問題の意味と入力データの意味を理解し、配列を使うときに添え字の番号を間違えなければ、素直に解けるでしょう。