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

📄

📁 c 的一些经典算法,满好的,适合初学者. 也可以当作小程序看,对初学者会很有帮助
💻
字号:
 
八皇后问题  
 


#include "stdio.h"

int a[8],b[24],c[24],d[24];

int i, k,t=0; 

void  print()

{    

    t++;

    printf("       %d",t);

    for (k=0;k<8;k++)

        printf("   %d",a[k]);

    printf("\n");

}

void try(int i)

{

    int j;

   for (j=0;j<8;j++)

    {/*每个皇后都有8种可能位置*/

        if ((b[j]==0) &&(c[i+j]==0)&& (d[i-j]==0))/*判断位置是否冲突*/

        {

              a[i]=j;/*摆放皇后*/

              b[j]=1;/*宣布占领第J行*/

              c[i+j]=1; /*占领两个对角线*/

              d[i-j]=1;

              if (i<8) 

                try(i+1);/*8个皇后没有摆完,递归摆放下一皇后*/

              else 

                print();/*完成任务,打印结果*/

             b[j]=0;    /*回溯*/

             c[i+j]=0;

             d[i-j]=0;

        }

    }

}

void main()

{

    for( k=0;k<24;k++) 

    {/*数据初始化*/

        b[k]=0;

        c[k]=0;

        d[k]=0;

    }

    try(1);/*从第1个皇后开始放置*/

}
 
 
 

⌨️ 快捷键说明

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