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