面试啦 - 提供专业面试问题及答案、面试技巧、助您成功面试!
您的当前位置:首页 > 面试题库 > IT面试题 > C++面试题 > 正文

八皇后问题,输出了所有情况,不过有些结果只是旋转了90度

八皇后问题,输出了所有情况,不过有些结果只是旋转了90度而已。(回溯算法的典型例题,是数据结构书上算法的具体实现,大家都亲自动手写过这个程序吗?)
#define N 8
int Board[N][N];
int Valid(int i, int j) { // 判断下棋位置是否有效
int k = 1;
for(k=1; i>=k && j>=k;k++)
if(Board[i-k][j-k]) return 0;
for(k=1; i>=k;k++)
if(Board[i-k][j]) return 0;
for(k=1; i>=k && j+k if(Board[i-k][j+k]) return 0;
return 1;
}

void Trial(int i, int n) { // 寻找合适下棋位置
if(i == n) {
for(int k=0; k for(int m=0; m printf(“%d “, Board[k][m]);
printf(“\n”);
}
printf(“\n”);
} else {
for(int j=0; j Board[i][j] = 1;
if(Valid(i,j))
Trial(i+1, n);
Board[i][j] = 0;
}
}
}

int main(int argc, char* argv[]) {
Trial(0, N);
}
词条:c面试题
上一篇:C语言50道问题 下一篇:联想C++笔试题
与该文相关的文章

温馨提示:如果您对面试网有任何建议,请通过网站联系邮箱向我们反馈,感谢各位的建议与支持!