zoukankan      html  css  js  c++  java
  • 八皇后问题

    此处为非递归版本

    #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;

    }

  • 相关阅读:
    .Net Web开发技术栈
    C#foreach原理
    C#位运算符
    python写12306抢票
    java语法学习
    建立个人知识体系
    struts2静态方法和动态方法调用
    springmvc跳转的几种方式
    JDBC驱动程序的四种方式
    eclipse用axis2发布webserver
  • 原文地址:https://www.cnblogs.com/guanling222/p/5139366.html
Copyright © 2011-2022 走看看