首页 > 其他 > 详细

八皇后问题

时间:2019-10-07 22:58:16      阅读:114      评论:0      收藏:0      [点我收藏+]

#include<iostream>
using namespace std;
/*为相应的摆法中第i行皇后随处的列数
先看一共有多少种解法
*/    
int number = 0;
bool range[9], line[17], line2[17];
void tryToput(int a);
int main() {
    for (int i = 0; i < 9; i++)
    {
        range[i] = true;
    }
    for (int i = 0; i < 17; i++)
    {
        line2[i] = line[i] = true;
    }
    tryToput(1);
    cout << number << endl;
}
void tryToput(int a) {
    if (a>8)
    {
        number++;
    }
    for (int j = 1; j <= 8; j++)
    {
        if (range[j]&&line[a+j]&&line2[a-j+9])
        {
            range[j] = line[a+ j] = line2[a-j+9] = false;
            tryToput(a + 1);
            range[j] = line[a + j] = line2[a - j + 9] = true;
        }
    }
}

答案92种

八皇后问题

原文:https://www.cnblogs.com/JUBAJIE2333/p/11632393.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!