首页 > 代码库 > 八皇后的问题
八皇后的问题
八皇后的问题和马踏棋盘的思路是一样,都用到了回溯的思想。代码也都差不多。这个里面最精彩的地方用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("■"); else printf("□"); } printf("\n"); } } int main() { insertQueen(0); return 0; }
八皇后的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。