www.pudn.com > 8_eightqueens.rar > 8_eightqueens.c
/*----------------------------------------------
┌───────────────────┐
│ 八皇后问题的递归求解 │
│ 8eightqueens.c │
┟───────────────────┧
┗━━━━━━━━━━━━━━━━━━━┛
----------------------------------------------*/
#include "stdio.h"
#define PATHOWN "8eightqueens.txt"
#define NUMQUEEN 8
/*定义说明:从pascal语言直接转换 */
/*a[1..NUMQUEEN]b,c[2..NUMQUEEN*2]x[1..NUMQUEEN]*/
int y[NUMQUEEN],m[2*NUMQUEEN-1],n[3*NUMQUEEN];
int board[NUMQUEEN+1];
int count=0;
/*-------------正确性确定--------------------*/
trysafety(int i)
{
int j,k;
FILE * fp;
for(j=1;j<=NUMQUEEN;j++)
if((y[j-1]==1)&&(m[i+j-2]==1)&&(n[i-j+NUMQUEEN-1]==1))
/*j-1列,i+-2主对角线,i-j+7副对角线*/
{
board[i]=j;
y[j-1]=0;m[i+j-2]=0;n[i-j+NUMQUEEN-1]=0;
if(i