我一直在研究递归函数,很显然,它们是可以自我调用的函数,并且不使用迭代/循环(否则它将不是递归函数)。
但是,在网上浏览示例(8皇后递归问题)时,我发现此功能:
private boolean placeQueen(int rows, int queens, int n) {
boolean result = false;
if (row < n) {
while ((queens[row] < n - 1) && !result) {
queens[row]++;
if (verify(row,queens,n)) {
ok = placeQueen(row + 1,queens,n);
}
}
if (!result) {
queens[row] = -1;
}
}else{
result = true;
}
return result;
}
while
涉及到一个循环。
...所以我现在有点迷路了。我可以使用循环吗?
placeQueen
是“ 8位皇后”,而最简单的版本placeQueen
是“ 7位皇后”(然后是6位,