八皇后问题

来源:互联网 发布:防抖插件mac 编辑:程序博客网 时间:2024/06/01 10:20

这里写图片描述

代码:

#include <iostream>using namespace std;//八皇后void eightQueue(int* colunmnIndex, int k ,int length){    if (k == length)    {        for (int i = 0 ; i < length; i++)        {            for (int j = i + 1; j < length; j++)            {                if ((i - j == colunmnIndex[i] - colunmnIndex[j]) || (j - i == colunmnIndex[i] - colunmnIndex[j]))                    return;            }        }        for (int i = 0; i < length; i++)            cout << colunmnIndex[i];        cout << "  ";    }    else    {        for (int m = k; m < length; m++)        {            int temp = colunmnIndex[m];            colunmnIndex[m] = colunmnIndex[k];            colunmnIndex[k] = temp;            eightQueue(colunmnIndex, k+1, length);            temp = colunmnIndex[m];            colunmnIndex[m] = colunmnIndex[k];            colunmnIndex[k] = temp;        }    }}void eightQueue(int* colunmnIndex, int length){    if (colunmnIndex == nullptr)        return;    int i = 0;    eightQueue(colunmnIndex, i, length);}int main(){    int colunmnIndex[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };    int length = sizeof(colunmnIndex) / sizeof(colunmnIndex[0]);    eightQueue(colunmnIndex, length);    cout << endl;    system("pause");    return 0;}

测试:

这里写图片描述

0 0
原创粉丝点击