eightQueen.h
extern int rows[8 ];
extern int solutionNum;
void solveEightQueen(int n);
bool checkPosition(int row,int col);
void printSolution();
eightQueen.cpp
#include"eightQueen.h"
#include<iostream>
using namespace std ;
bool checkPosition(int row,int col){
for (int x=0 ;x<row;++x){
if (abs (row-x)==abs (col-rows[x])||col==rows[x])
return 0 ;
}
return 1 ;
}
void printSolution(){
cout <<solutionNum<<":::" <<endl;
for (auto p:rows)
cout <<p<<'\t' ;
cout <<endl;
}
void solveEightQueen(int row){
for (int col=0 ;col<8 ;++col){
if (checkPosition(row,col)){
rows[row]=col;
if (row==7 ){
++solutionNum;
printSolution();
return ;
}
solveEightQueen(row+1 );
}
}
}
main.cpp
#include"eightQueen.h"
#include<iostream>
using namespace std ;
int rows[8 ]={0 };
int solutionNum=0 ;
int main(){
solveEightQueen(0 );
cout <<"The total solution number is:: " <<solutionNum<<endl;
return 0 ;
}
该程序主要参考了别的网友的程序,其实主要的思想是在书上看到的但是自己总是写不出代码来。