覆面算をJavaScriptで解いてみた。

 覆面算をJavaScriptで解いてみました。(^_^;

●問題

Solve A/[BC] + D/[EF] + G/[HI] = 1 where A〜I={1,2,3,4,5,6,7,8,9}.
Here [BC]=10*B+C.

●VerbalArithmetic01.html

<html>
<head>
<title>VerbalArithmetic01.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 expr=0;
  var a,b,c,d,e,f,g,h,i;

  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];
    expr=a/Hn(b,c)+d/Hn(e,f)+g/Hn(h,i);
    if(expr==1){
      var s=a+"/"+Hn(b,c)+"+"+d+"/"+Hn(e,f)+"+"+g+"/"+Hn(h,i);
      document.write(s,"=1<br />");
    }
  }while(next_perm(p,9,9));
  tm=(new Date()).getTime()-tm;  // Timer stop
  document.write("Runtime : ",tm/1000.0, "[sec]<br />");
</script>
</body>
</html>

●出力結果

5/34+7/68+9/12=1
5/34+9/12+7/68=1
7/68+5/34+9/12=1
7/68+9/12+5/34=1
9/12+5/34+7/68=1
9/12+7/68+5/34=1
Runtime : 0.151[sec]

※参考URL
●Program Question
http://www.java-forums.org/new-java/37133-program-question.html
※genperm.js
http://d.hatena.ne.jp/rsc96074/20111021/1319190871