- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在尝试解决c++中的n-皇后问题时。我遇到了这个错误,我会得到正确的答案,但是当返回数组指针时,我最终得到的是垃圾数字而不是答案。关于这个的怪异部分是我使用递归来解决问题,并且只有在使用递归时(即使它正确地通过了递归),我才获得垃圾编号。数组在返回之前是完全正确的。
int* Successor(int board[], int n) {
bool currentlyLegal = isLegalPosition(board, n);
int firstZero = -1;
int templast;
for(int i = 0; i < n; i++) {
if(board[i] == 0) {
firstZero = i;
break;
}
}
if(currentlyLegal) {
if(firstZero != -1) {
for(int i = 1; i < n; i++) {
board[firstZero] = i;
if(isLegalPosition(board, n) && i != lastNum) {
return board;
}
}
lastNum = -1;
board[firstZero - 1] = 0;
Successor(board, n);
} else {
templast = board[n - 1];
for(int i = board[n - 1]; i < n; i++) {
board[n - 1] = i;
if(isLegalPosition(board, n) && i != board[n-1] && i != lastNum) {
return board;
}
}
lastNum = templast;
board[n - 1] = 0;
Successor(board, n);
}
} else {
if(firstZero != -1) {
if(firstZero != 0) {
for(int i = board[firstZero - 1]; i < n; i++) {
board[firstZero - 1] = i;
if(isLegalPosition(board, n) && i != board[firstZero - 1]) {
return board;
}
}
lastNum = -1;
board[firstZero - 1] = 0;
Successor(board, n);
} else {
board[0] = 1;
return board;
}
} else {
templast = board[n - 1];
for(int i = board[n - 1]; i < n; n++) {
board[n - 1] = i;
if(isLegalPosition(board, n) && i != board[n - 1] && i != templast) {
return board;
}
}
lastNum = templast;
board[n - 1] = 0;
Successor(board, n);
}
}
}
最佳答案
您的递归调用不会返回任何内容。启用所有警告后,您应该会看到有关“并非所有控制路径都返回值”的信息。将您的递归调用更改为
return Successor( board, n );
关于c++ - N皇后问题。从函数C++返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59295102/
最初的 N-Queen 问题是关于在 N*N 棋盘上放置 N 个皇后。 然而,我却被一位学界 friend 质疑: 有预定义皇后的 N 皇后问题的 NP 完备性证明吗? 定义是: 假设: N = 8,
我正在尝试解决 N 皇后问题。您可以在 https://leetcode.com/problems/n-queens/ 中找到问题. 对于回溯,我了解到我们可以用三个关键来解决问题: 做出选择 约束
我正在用 Java 制作国际象棋游戏。 我做了一个 JFrame,它可以让我创建棋子,这就是为什么我对任何棋子都有所有可能的走法(并且我将制作比正常国际象棋中更多的棋子)。 但是我有一个小问题,我已经
我编写了一个 N-Queens 难题的 Java 小算法(使用 c*c 棋盘)。您将在下面找到我的递归方法的代码。 它没有找到所有的解决方案。 我的功能是什么 这个想法是在主方法中第一次调用我的函数,
我写了两个程序: 通过回溯算法在没有任何威胁的情况下将 n 个皇后放在棋盘上。但这对于 big n 来说非常沉重。最后你可以运行 100 个皇后。 在没有任何爬山算法威胁的情况下,将 n 个皇后放在棋
我是一名优秀的程序员,十分优秀!