[一覧に戻る]
容積が4リットルと7リットルのバケツを1つずつ使って,2リットルの水を汲むにはどうしたらよいか? (ただし,バケツに目盛はついていない.)このパズルにおける操作を模倣するプログラムを作成してみよ.
まず,2つのバケツの中にある水の量を,要素数が2である配列\$bucketで表す. つまり,容積が4リットルの容器の番号を0,容積が7リットルの容器の番号を1とすると,容器0の中にある水の量は\$bucket[0]であり,容器1の中にある水の量は\$bucket[1]である.単位はリットルである. 容器の中にある水の量の初期値はどちらも0であるとする.
そして,次の操作を行うメソッドを作成する.
irb> initialize_bucket => [0, 0] irb> fill 0 => [4, 0] irb> transfer 0 => [0, 4] irb> fill 0 => [4, 4] irb> transfer 0 => [1, 7] irb> empty 1 => [1, 0] irb> transfer 0 => [0, 1] irb> fill 0 => [4, 1] irb> transfer 0 => [0, 5] irb> fill 0 => [4, 5] irb> transfer 0 => [2, 7] irb> empty 1 => [2, 0]
「Submission successfully completed.」と表示されれば,提出が完了したことになる.% /ced-home/staff/enshu1p/checker_d4.rb ファイル名
[一覧に戻る]