皇后问题
在8*8的格子里,放8个皇后棋子,皇后不能站在同一行。同一列。同对角线上,
求解的数量
用递归
void search(int k){ //k表示放在哪一行
if(k>8){
ans++;return;
}
for(int i=1;i<=8;i++){
if(!lie[i]&&!xie1[i+k]&&!xie2[i-k+8]){ //lie表示这一列有元素
a[k]=i; //xie1表示正对角线
lie[i]=xie1[i+k]=xie2[i-k+8]=true; //xie2表示负对角线
search(k+1);
lie[i]=xie1[i+k]=xie2[i-k+8]=false;
}
}
}