题目:在8×8的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后不得处在同一行、同一列或者同一对角斜线上。下图中的每个黑色格子表示一个皇后,这就是一种符合条件的摆放方法。请求出总共有多少种摆法。
从第一行开始放皇后,那么就不需要判断行是否安全,因为肯定安全,所以只需要判断该列是否安全,而且改对角线是否安全
col[0..7] 用true或者false表示
左对角线right[i+j],因为向左移就要向下移,一加一减总数没变
右对角线left[i-j]--为了避免出现负数 left[i-j+8]
void try(int row){//试第row行
int col; //循环变量,表示列号
int tmp; //临时变量
for(col=1;col<=8;col++){
if(c[col]&&right[row+col]&&left[row-col+8]){
list.add(row+" "+col);
c[col]=false;
right[row+col]=false;
left[row-col+8]=false;
if(row<8){
try(row+1);
}else{
打印list
}
c[col]=true;
right[row+col]=true;
left[row-col+8]=true;
}
}
}
分享到:
相关推荐
程序员面试题精选100题
程序员面试题精选100题
程序员面试题精选程序员面试题精选程序员面试题程序员面试题精选精选
程序员面试题精选100题程序员面试题精选100题程序员面试题精选100题程序员面试题精选100题程序员面试题精选100题程序员面试题精选100题程序员面试题精选100题程序员面试题精选100题程序员面试题精选100题程序员面试...
程序员面试题精选100题-何海涛 程序员 面试题 算法 数据结构
程序员面试题精选100题(2008)程序员面试题精选100题(2008)
程序员面试题精选100题
一份可以让大家在求职时更能自信的题解,经典的100题,让大家可以感受到算法的经典,当然,自己要更加努力,要懂得举一反三才能更上一层楼!
程序员面试题精选100题
程序员面试题精选100题,以前下过的不全,自己在网上搜了搜,整理了一下。
------------------------------------- java程序员早期面试题汇总 BAT经典面试题汇总.pdf Java常考面试题.pdf java面试题(题库全)....程序员面试题精选100题.pdf ... -------------------------------------