八皇后问题的非递归解法

转载 2013年02月19日 09:04:06
用C++实现了八皇后问题的非递归算法。原理很简单,看代码就是了,无须多说
#include <cmath>

#include <iostream>

#include <vector>

#include <algorithm>



using namespace std;

const int MAX = 8;



vector<int> board(MAX);



void show_result()

{

    for(size_t i = 0; i < board.size(); i++)

        cout<<"("<<i<<","<<board[i]<<")";

    cout<<endl;

}



int check_cross()

{

    for(size_t i = 0; i < board.size()-1; i++)

    {

        for(size_t j = i+1; j < board.size(); j++)

        {

            if((j-i) == (size_t)abs(board[i]-board[j]))

                return 1;

        }

    }

    return 0;

}



void put_chess()

{

    while(next_permutation(board.begin(), board.end()))

    {

        if(!check_cross())

        {

            show_result();

        }

    }

}



int main()

{

    for(size_t i =0; i < board.size(); i++)

        board[i] = i;

    put_chess();

    return 0;

}

相关文章推荐

八皇后问题:递归和非递归解法

#include #include using namespace std; #define MAXNUM 10 int tot=0,row,line[MAXNUM],n=8; void s...
  • juiceda
  • juiceda
  • 2012年04月25日 22:36
  • 556

八皇后问题(最简单的递归解法)

题目 原文: Write an algorithm to print all ways of arranging eight queens on a chess board so that...

八皇后问题的递归解法(最易理解的版本)

八皇后问题是一个古来而著名的问题,该问题是19世纪著名的数学家高斯同学提出来的。在8*8的国际象棋上摆放八个皇后,使其不能互相的攻击,也就是说,任意的两个皇后不能放在同一行或则是同一个列或者是同一个对...
  • nmgrd
  • nmgrd
  • 2017年03月23日 20:56
  • 503

八皇后问题 递归解法

本文简单讲解了八皇后递归解法, 比较易懂 直接看代码:#include #define NUM_QUEUE 8 #define TRUE 1 #define FALSE 0/...

八皇后问题递归解法

八皇后问题

八皇后问题-递归和迭代两种解法

问题: 经典的八皇后问题 分析: 递归解法直观易懂,但是迭代法需要想点思路 代码如下: /* * eightQueen.cpp * * Created on: 2012-10-14 ...
  • lxmky
  • lxmky
  • 2012年10月14日 14:24
  • 4317

八皇后问题-递归与非递归方法实现

int board[8][8]; int cnt = 0;bool isValid(int i, int j) { int k; for(k = 0; k < 8; ++k) ...

八皇后问题详细推导(递归和非递归,Go语言实现)

回溯法解八皇后问题(递归和非递归,Go语言实现)   问题重现: 在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法?如果问...
  • WAPWO
  • WAPWO
  • 2013年05月20日 21:24
  • 1191

八皇后问题(回溯+递归)/(回溯+非递归)

八皇后问题:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。分析:我们可以尝试在将第一个皇后摆放在第0行第0列,为了不冲突,将...

N皇后问题递归与非递归解法

参考资料:http://www.cnblogs.com/yanlingyin/archive/2011/12/19/2292041.html
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:八皇后问题的非递归解法
举报原因:
原因补充:

(最多只允许输入30个字)