#include <stdio.h>
#include <stdlib.h>
int data[8]={0};
int max_num=0;
void print(){
for(int i=0; i<8; i++){
for(int j=0; j<8; j++){
if( data[i] == j)
printf("A");
else
printf("*");
}
printf("\n");
}
printf("\n");
}
bool isSafe(int x,int y){
bool ret = true;
for(int i=0;i<x;i++){
if((x == i)||(y == data[i])||((x-i) == (y-data[i]))||((i-x) == (y-data[i])))
ret = false;
}
return ret;
}
int fuc(int step){
if(step == 8){
max_num++;
print();
return max_num;
}
for(int i=0;i<8;i++){
if(isSafe(step,i)){
data[step]=i;
fuc(step+1);
}
}
}
void main(){
fuc(0);
printf("%d\n",max_num);
}
8x8皇后 (dfs)
最新推荐文章于 2022-09-18 00:51:59 发布