📄 n皇后.cpp
字号:
#include <iostream>
#include <math.h>
#include "stdafx.h"
using namespace std;
int main(int argc, _TCHAR* argv[])
{
int n;
cout<<"请输入棋盘大小"<<endl;
cin>>n;
int *queen=new int[n+1];
N_Queen(1,n,queen);
system("pause");
return 0;
}
void N_Queen(int x,int a,int *queen)
{
int i;
int secure_status = 1;
int j;
if (x ==a+ 1)
{
print_status(a,queen);
}
else
{
for (j = 1; j <=a; j++)
{
queen[x] = j;
for (i = 1; i < x; i++)
{
if ((queen[i] != j) &&(abs(queen[i] - j) != abs(i - x)))
{
secure_status = 1;
}
else
{
secure_status =0;
break;
}
}
if (secure_status == 1)
{
N_Queen(x+1,a,queen);
}
}
}
}
void print_status(int a,int *queen)
{
int i;
int j;
cout<<"********************************************************"<<endl;;
for (i =1; i <=a; i++)
{
for (j = 1; j <=a; j++)
{
if (queen[i] == j)
{
cout<<"NO."<<i<<" "<<i<<" "<<j<<endl;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -