【精选】八皇后算法.docVIP

  • 1
  • 0
  • 约1.09万字
  • 约 10页
  • 2018-03-27 发布于贵州
  • 举报
【精选】八皇后算法

回溯算法的实现 (1)为解决这个问题,我们把棋盘的横坐标定为i,纵坐标定为j,i和j的取值范围是从1到8。当某个皇后占了位置(i,j)时,在这个位置的垂直方向、水平方向和斜线方向都不能再放其它皇后了。用语句实现,可定义如下三个整型数组:a[8],b[15],c[24]。其中: a[j-1]=1 第j列上无皇后 a[j-1]=0 第j列上有皇后 b[i+j-2]=1 (i,j)的对角线(左上至右下)无皇后 b[i+j-2]=0 (i,j)的对角线(左上至右下)有皇后 c[i-j+7]=1 (i,j)的对角线(右上至左下)无皇后 c[i-j+7]=0 (i,j)的对角线(右上至左下)有皇后 (2)为第i个皇后选择位置的算法如下: for(j=1;j=8;j++) /*第i个皇后在第j行*/ if ((i,j)位置为空)) /*即相应的三个数组的对应元素值为1*/ {占用位置(i,j) /*置相应的三个数组对应的元素值为0*/ if i8 为i+1个皇后选择合适的位置; else 输出一个解 } #include graphics.h #include stdlib.h #include stdio.h #include dos.h char n[3]={0,0};/*用于记录第几组解*/ int a[8],b[15],c[24],i

文档评论(0)

1亿VIP精品文档

相关文档