八皇后
直接丢代码,留个纪念
#include <iostream>
#include <cstdlib>
using namespace std;
void queen(int n);
void display(int arr[]);
void putChess(int arr[],int size,int row,int col);
int main(){
queen(8);
}
bool checkQueen(int arr[],int row){
for (int i = 0; i < row; ++i)
{
if(arr[i]==arr[row] || abs(arr[i] - arr[row])==abs(i-row)){
return false;
}
}
return true;
}
void putChess(int arr[],int size,int row,int col){
arr[row]=col;
if(checkQueen(arr,row)){
if(row == size-1){
display(arr);
}else{
for (int i = 0; i < size; ++i)
{
putChess(arr,size,row+1,i);
}
}
}
}
void display(int arr[]){
static int count=0;
count++;
cout << count << endl;
}
void queen(int n){
int arr[n];
int row=0;
for (int i = 0; i < n; ++i)
{
putChess(arr,n,row,i);
}
}