小町算
Posted feedbacks - Groovy
重たすぎです。 1.java実行形式にコンパイル 2.combi.eachをfor文に書き換える としたら何とか動くようになりました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import static groovy.util.GroovyCollections.combinations
import groovy.util.Eval
def operations = ["", "+", "-", "*", "/"]
def combi = combinations((1..8).collect{ operations })
def eval = new Eval()
combi.each{ opes ->
def text = "1${opes[0]}2${opes[1]}3${opes[2]}4${opes[3]}5${opes[4]}6${opes[5]}7${opes[6]}8${opes[7]}9"
if( eval.me(text) == 100 ){
println "${text} = 100"
}
}
|


dpp
#4509()
Rating0/2=0.00
古典的なパズルである小町算を解くプログラムを作成してください。
小町算とは:
1□2□3□4□5□6□7□8□9=100
四角の中に、空白、+、-、×、÷のいずれかを一つ入れ、等式が成り立つようにするパズルです。
解答例:
1-2-3+4×56÷7+8×9=100
1+234×5÷6-7-89=100
参考: http://ja.wikipedia.org/wiki/%E5%B0%8F%E7%94%BA%E7%AE%97
手元で20数行ほどのPythonスクリプトを書いてみたところ、101個の解答が得られました。
[ reply ]