世界一美しい覆面算をJavaScriptで解いてみた。

 今更ですが、世界一美しい覆面算をJavaScriptで解いてみました。(^_^;

●問題

        C   
     ------ 
[AB] )[DE]  
      [FG]  
     ------ 
      [HI]  

Where A〜I={1,2,3,4,5,6,7,8,9}.
Here [AB]=10*A+B.

●VerbalArithmetic02.html

<html>
<head>
<title>VerbalArithmetic02.html</title>
<script type="text/javascript" src="genperm.js"></script>
<script type="text/javascript">
function Hn(p,q)
{
  return ( 10*(p)+(q) );
}
</script>
</head>
<body>
<script type="text/javascript">
  var p=[1,2,3,4,5,6,7,8,9];
  var a,b,c,d,e,f,g,h,i;
  var h1,h2,h3,h4;
  var tm=(new Date()).getTime();  // Timer start
  do{
    a=p[0],b=p[1],c=p[2],d=p[3],e=p[4],f=p[5],g=p[6],h=p[7],i=p[8];
    h1=Hn(a,b);
    h2=Hn(d,e);
    h3=Hn(f,g);
    h4=Hn(h,i);
    if(h1*c!=h3) continue;
    if(h2-h3!=h4) continue;

    // checkを潜り抜けたものだけを表示
    document.write("<pre>");
    document.write("     ",c,"<br />"); // 半角スペース
    document.write("   ---","<br />");
    document.write(h1," )",h2,"<br />");
    document.write("    ",h3,"<br />");
    document.write("   ---","<br />");
    document.write("    ",h4,"<br />");
    document.write("</pre>");
  }while(next_perm(p,9,9));
  tm=(new Date()).getTime()-tm;  // Timer stop
  document.write("Runtime : ",tm/1000.0, "[sec]<br />");
</script>
</body>
</html>

●実行結果

   4
  ---
17 )93
  68
  ---
  25

Runtime : 0.097[sec]

※参考URL
世界一美しい覆面算はこれだ(と思う)
※genperm.js
http://d.hatena.ne.jp/rsc96074/20111021/1319190871