算法--八皇后问题

      在棋盘上放置8个皇后,使得他们不能相互攻击,此时,每个皇后的攻击范围为同行同列和同对角线,要求找出所有解,算法--八皇后问题_第1张图片

回忆之前分析生成排列所用的解答树,我们再把问题简化为四皇后问题,规则不变,写出它的完整解答树

算法--八皇后问题_第2张图片

与生成1~n的排列这篇博文中的解答树最大的不同点就是----只有一条或者几条路径可以到达最后一层,而其它的路径在递归时因为条件不满足被回溯了,这也称为回溯法。

本题代码如下:

/*八皇后问题*/
#include
#include
#include
#include
#include

using namespace std; 
const int N=8;
int poi[N]={0};
int tot=0;
int search(int cur){
    if(cur==N){
        tot++;
        printf("第%d个解:\n",tot); 
        for(int i=0;i


你可能感兴趣的:(算法,c/c++,c,八皇后,算法,编程,递归)