八皇后的问题

来源:互联网 发布:矩阵的迹与期望的关系 编辑:程序博客网 时间:2024/04/30 09:47

                    八皇后的问题和马踏棋盘的思路是一样,都用到了回溯的思想。代码也都差不多。这个里面最精彩的地方用4个一位数组表示了这个棋盘。这个里面总共有92组解

            代码展示

                      

#include<stdio.h>#include<stdlib.h>int col[8]={0};int right[15]={0};int left[15]={0};int Queen[8];int cnt;   //全局变量void print();void insertQueen(int );void  insertQueen(int i){   for(int j=0;j<8;j++)   {       if(col[j]==0&&right[i+j]==0&&left[i-j+7]==0)  //判断是否可以放   {   Queen[i]=j;   //放皇后   col[j]=1;   right[i+j]=1;   left[i-j+7]=1;   if(i<7)      insertQueen(i+1);   //递归    else{print();}   col[j]=0;      //清除标记,查找下一组的解       right[i+j]=0;   left[i-j+7]=0;   }   }}void print(){int i,j;printf("输出第%d组解\n",++cnt);for(i=0;i<8;i++){for(j=0;j<8;j++){            if(Queen[i]==j)printf("■");elseprintf("□");}printf("\n");}}int main(){     insertQueen(0);return 0;}

1 0
原创粉丝点击