text1.cpp
来自「N皇后问题的回溯算法」· C++ 代码 · 共 51 行
CPP
51 行
#include <iostream>
using namespace std;
int x[20];
int COUNT = 0;
bool place(int k)
{ int i;
i = 1;
while (i<k)
{
if (x[i] == x[k] || (abs(x[i] - x[k]) == abs(i-k)))
return false;
i = i + 1;
}
return true;
}
void queen(int N)
{ int k;
int n = N;
x[1] = 0;
k = 1;
while (k>0)
{
x[k] = x[k] + 1;
while (x[k] <= n && place(k) == false)
x[k] = x[k] + 1;
if (x[k] <= n)
if (k == n)
{
for(int i = 1; i <= n; i++)
{ cout<<x[i]<<" "; }
cout<<endl;
return ;
COUNT++;
}
else
{
k = k + 1;
x[k] = 0;
}
else
k = k - 1;
}
}
int main()
{ int n ;
cin>> n ;
queen(n);
return 0 ;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?