关于八皇后问题有一点不懂求大神!!!
看了关于小甲鱼老师的八皇后代码,里面有一步不懂就是if( notDanger(row, j, chess) ){
for(i=0;i<8;i++){
*(*(chess2+row)+i) = 0;
}
*(*(chess2+row)+j) = 1;
EightQueen(row+1,n,chess2);
}
里面为什么要用一个for循环把一行全部设置为0呢?*(*(chess2+row)+i) = 0?为什么?
有点犯浑,嘿嘿! 同求大牛解释 我只是路过打酱油的。 水军路过只为等级 因为上一次循环可能已经把这一行的某个元素置1,不清零可能会影响下一次递归调用(填写下一行)时的notDanger判断。不过其实也可以不一行全清 那个循环不用写的,因为满足条件的矩阵 列上一定没有1
这个不懂啊啊啊啊啊 {:1_1:}
页:
[1]