小町算をJavaScriptで解いてみました。
(1)空白と'+','-'だけ使用する場合
(2)空白と'+','-','*','/'を使用する場合
など、いろいろあるようですが、実行結果の少ない(1)の場合をやってみました。(^_^;
ちなみに、括弧を使ってもいい場合も作ってみようと思いましたが、すぐに、閃かなかったのであきらめました。(^_^;
<!-- /* * Komachizan.html * * □1□2□3□4□5□6□7□8□9=100 * * (1)□={"","-","+"} * (2)□={"","-","+","*","/"} * */ //--> <html> <head> <title>Komachizan.html</title> </head> <body> <script type="text/javascript"> var M=100; var N=3; // (1)空白と'+','-'だけ使用する場合 //var N=5; // (2)空白と'+','-','*','/'を使用する場合 var o=["","-","+","*","/"]; var f=""; var tm=(new Date()).getTime(); // Timer start for(var i1=0; i1< 2; i1++){ // 先頭は空白か'-'とする for(var i2=0; i2< N; i2++){ for(var i3=0; i3< N; i3++){ for(var i4=0; i4< N; i4++){ for(var i5=0; i5< N; i5++){ for(var i6=0; i6< N; i6++){ for(var i7=0; i7< N; i7++){ for(var i8=0; i8< N; i8++){ for(var i9=0; i9< N; i9++){ f=o[i1]+"1"+o[i2]+"2"+o[i3]+"3" +o[i4]+"4"+o[i5]+"5"+o[i6]+"6" +o[i7]+"7"+o[i8]+"8"+o[i9]+"9"; if(eval(f)==M) document.write(f,"=",M,"<br>"); } } } } } } } } } tm=(new Date()).getTime()-tm; // Timer stop document.write("Runtime : ",tm/1000.0, "[sec]<br>"); </script> </body> </html>
●実行結果
123-45-67+89=100 123-4-5-6-7+8-9=100 123+45-67+8-9=100 123+4-5+67-89=100 12-3-4+5-6+7+89=100 12+3-4+5+67+8+9=100 12+3+4+5-6-7+89=100 1+23-4+56+7+8+9=100 1+23-4+5+6+78-9=100 1+2+34-5+67-8+9=100 1+2+3-4+5+6+78+9=100 -1+2-3+4+5+6+78+9=100 Runtime : 0.154[sec]