feidiguibahuanghou.txt

来自「非递归八皇后问题。以前大家常见的是递归的」· 文本 代码 · 共 33 行

TXT
33
字号
                              非递归八皇后解
int x[9]={0};int n=1;int chk(int a, int b) /*检测(x,y)处的皇后是否与已有皇后冲突,同行、同斜线均为冲突。*/
{
 int i; 
 if(a != 0) 
{  for(i=1; i <= a; i++) 
  {   if((b == x[i]) || (a  - i == b - x[i]) || (a - i == x[i] - b))   
   {    return 0;  /*代表有冲突*/   }  } }
        return 1;  /*没有冲突*/}
 void output()
{
 int i,j; 
 for(i=1;i<=8;i++)  
   for(j=1;j<=8;j++)  
     {gotoxy(j+1,i); printf(".");} 
    for(i=1;i<=8;i++)  
      {gotoxy(i+1,x[i]); printf("o");} gotoxy(20,10); printf("view the %d font now!\n",n++); getch();}
void main()
{
 int i,j,bool; 
  for(i=1;i<=8;i++) 
   {  bool=0; 
      for(j=x[i]+1;j<=8;j++) 
       {   bool=chk(i,j);   
            if(bool==1)   
               {    x[i]=j; break;   }  }  
         if(j==9 && bool==0)
           {x[i]=0; i=i-2;}  
              if(i==8 && bool==1) 
                {output(); x[i]=0; i=i-2;}  
          if(i==-1) {break;} }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?