function recursiveNQueens(n) {
const board = Array.from({ length: n }, () => Array.from({ length: n }, () => "."));
const solutions = [];
const isSafe = (row, col) => {
for (let i = 0; i < row; i++) {if (board[i][col] === "Q") return false;
const colOffset = row - i;
if (col - colOffset >= 0 && board[i][col - colOffset] === "Q") return false;
if (col + colOffset < n && board[i][col + colOffset] === "Q") return false;
}
return true;
};
const placeQueens = (row) => {
if (row === n) {
solutions.push(board.map(row => row.join("")));
return;
}
for (let col = 0; col < n; col++) {
if (isSafe(row, col)) {
board[row][col] = "Q";
placeQueens(row + 1);
board[row][col] = ".";
}
}
};
placeQueens(0);
return solutions;
}
const result = recursiveNQueens(4);
console.log(result);Ответ: [[".Q..", "...Q", "Q...", "..Q."], ["..Q.", "Q...", "...Q", ".Q.."]]
JavaScript test | #JavaScript