#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