とうの昔の話ですが、@IT 会議室のスレッドに、このような問題がありました。私は知りませんでしたが、電車の切符の数字で、この遊びをされている世代もいらっしゃるとか...
論理的思考力テスト (atmarkit.co.jp) からの引用
有名な四則演算とカッコで 10 を作る問題です。
2 つの数を組み合わせて 2 桁の数にしたり、累乗、階乗は反則ですよ。順番を変えるのは OK です。
問題例 : 1, 2, 3, 3
解答例 : (3 - 1) x (2 + 3)
レベル 1 : 9, 9, 9, 9
レベル 2 : 1, 1, 9, 9
レベル 3 : 1,1,5,8
答えは、リンク先のスレッド内にあるのでここでは書きませんが、それにしても、この問題は以下の定義を書いておかないといけませんね。
- 各数字を必ず 1 回ずつ使用すること
- 四則演算以外は使用禁止 (よって、累乗・階乗は使用禁止)
- 2 つの数字をつなげて 2 桁にするのは禁止
- 単項のマイナス演算は禁止
プログラマならではの解き方として、プログラムを組んでしまうという方法があります。これ、Stack クラスを使うと勉強になるかもしれません。そんなわけで、ヒマな方は Stack で解くプログラムを作ってみてください。
関連リンク