小町算をJavaScriptで解いてみた

 小町算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]