把下列文本保存成HTM文件并打开。运行过程中会提示“是否中止脚本运行”,建议选否保证打出全部解。


<html>
<title>Eight Queens</title>
<script language=javascript>
<!--

// Question Eight Queens
// Programmed by j.t.Chang

var  n = 8;
var  a = new Array(n+1);
var  k=1,i,sum=0;
function place(k)
{var j;

for(j=1;j<k;j++)
   if( (Math.abs(k-j)==Math.abs(a[j]-a[k]))||(a[j]==a[k]))
       return false;
   return true;
}

function print_result()
{var s="&nbsp;";
var i,j;
    document.write("Answer ",++sum);    
    document.writeln(": (");
    for(j=1;j<=n;j++) document.writeln(a[j]);
    document.write(")<br>")
    document.write("<table border=1 cellspacing=0>")
    for(i=1;i<=n;i++)
      {document.write("<tr>")
       for(j=1;j<=n;j++)
          { if((i+j)%2!=0)
              document.write("<td bgcolor=#C0C0C0><p align=center>");
            else  document.write("<td><p align=center>");
            if (j==a[i]) document.write("Q");
              else document.write("&nbsp;&nbsp;");
            document.write("</td>");
          }
      }    
    document.write("</table>");
    document.write("</br>");

}

document.write("Question Eight Queens answers.</br>")
document.write("Programmed by j.t.Chang.</br></br>")
for(i=1;i<=n;i++) a[i] = 0;
while(k>0) {
    a[k]+=1;
    while ((a[k]<=n)&&!place(k)) a[k]+=1;
    if (a[k]<=n)
        if(k==n) print_result();
        else {
                k++;
                a[k]=0;
             }
     else k--;
}

document.write("sum = ",sum)

//-->
</script>
</html>