⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bahuanghou.txt

📁 在8X8格的国际象棋上摆放八个皇后
💻 TXT
字号:
 #include   <conio.h>   
  #define   MAXN   20   
  int   n,   m,good;   
  int   col[MAXN+1],a[MAXN+1];   
  int   b[2*MAXN+1],c[2*MAXN+1];   
  main()   
  {   
  int   i,j;   
  int   num=1;   
  char   awn;   
  printf("Input   n:   ");   /*输入皇后的个数,例如8*/   
  scanf("%d",&n);   
  for(j=0;j<=n;j++)   
    a[j]=1;   
  for(j=0;j<=2*n;j++)   
  b[j]=c[j]=1;   
  m=1;   
  col[1]=1;   
  good=1;   
  col[0]=1;   
  do{   
  if(good)   
  if(m==n)   
  {   
  printf("NO.   %d   method.\n",num);     /*输出第     num种排列方法*/   
  printf("   ");   
  for(i=1;i<=n;i++)   
            printf("%4d",i);   
            printf("\n");   
    
  for(i=1;i<=n;i++)   
      {   printf("%d",i);   
      for(j=1;j<=n;j++)   
              {if(j==col[i])   
  {   
  printf("       Q");     /*Q的位置为皇后的位置*/   
    }   
                else   printf("       *");   
                }   
          printf("\n");   
          }   
    
  awn=getch();   
  if(awn=='Q'||awn=='q')   
  exit();   
  else   
      num++;   
  while(col[m]==n)   
  {   
  m--;   
  a[col[m]]=b[m+col[m]]=c[n+m-col[m]]=1;   
  }   
  col[m]++;   
  }   
  else{   
  a[col[m]]=b[m+col[m]]=c[n+m-col[m]]=0;   
  col[++m]=1;   
  }   
  else{   
  while(col[m]==n)   
  {   
  m--;   
  a[col[m]]=b[m+col[m]]=c[n+m-col[m]]=1;   
  }   
  col[m]++;   
  }   
  good=a[col[m]]&&b[m+col[m]]&&c[n+m-col[m]];   
  }   
  while(m!=0);   
  }  

⌨️ 快捷键说明

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