N皇后问题语言实现与.pdfVIP

  • 0
  • 0
  • 约2.39千字
  • 约 5页
  • 2026-06-26 发布于北京
  • 举报

2019年上半年试题四

阅读下列说明和C代码,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】

后问题描述为:在一个棋盘上摆放皇后,要求任意两个皇后不能冲

突,即任意两个皇后不在同一行、同一列或者同一斜线上。

算法的基本思想如下:

将第皇后摆放在第,1开始,每个皇后都从第1列开始尝试。尝试时判断在

该列摆放皇后是否与前面的皇后有,如果没有,则在该列摆放皇后,并考虑摆放

下一个皇后;如果有,则考虑下一列。如果该行没有合适的位置,回溯到上一个皇

后,考虑在原来位置的下一个位置上继续尝试摆放皇后……直到找到所有合理摆放方案。

【C代码】

下面是算法的C语言实现。

(1)常量和变量说明

n:皇后数,棋盘规模为n×n

queen[]:皇后的摆放位置数组,queen[i]表示第i个皇后的位置,1≤queen[i]≤n

(2)C程序

#includestdio.h

#definen4

intqueen[n+1];

voidShow(){/*输出所有皇后摆放方案*/

inti;

printf(();

for(i=1;i=n;i++){

print

文档评论(0)

1亿VIP精品文档

相关文档