八皇后javascript实现
<script type="text/javascript"> function QueenArithmetic(size) { var Queen = new Array(10);//每行皇后的位置 var y, x, i, j, d, t = 0; y = 0; Queen[0] = -1; while (true) { for (x = Queen[y] + 1; x < size; x++) { for (i = 0; i < y; i++) { j = Queen[i]; d = y - i; //检查新皇后是否能与以前的皇后相互攻击 if ((j == x) || (j == x - d) || (j == x + d)) break; } if (i >= y) break;//不攻击 } if (x == size) //没有合适的位置 { if (0 == y) { //回朔到了第一行 document.write("Over"); break; //结束 } //回朔 Queen[y] = -1; y--; } else { Queen[y] = x;//确定皇后的位置 y++;//下一个皇后 if (y < size) Queen[y] = -1; else { //所有的皇后都排完了,输出 document.write("\n" + ++t + ':'+"<br/>"); for (i = 0; i < size; i++) { for (j = 0; j < size; j++) document.write(Queen[i] == j ? 'Q' : '*'); document.write("<br/>"); } y = size - 1;//回朔 } } } } QueenArithmetic(8); </script>
-------------------------------------------------
!!!作者:木由水 http://www.cnblogs.com/muyoushui