资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
八皇后问题的实现(C 语言)八皇后问题主要靠回溯的方法实现, 与迷宫的实现相似, 但又困难了一些. 如迷宫的路径不因为上一步而改变, 八皇后的每一步都受约束于以前的步数 , 并且, 迷宫只要找出一条路径就行,但八皇后则有很多的解法 . 等等.#include #define N 8 / 定义棋盘的格数, 通过改变,也可以是 4 皇后, 16 皇后, 9 皇后什么的.int chessNN = 0; / 棋盘int count = 0; / 有多少种放法int canput(int row, int col) / 确定某一格能不能放int i,j;for(i = 0; i #include int check(int a,int n)int i,j;for(i=2;i#include int check(int a,int n)int i;for(i=1;i#include int a9 = 0; int n = 8, count = 0; int check(int a,int n)int i,j;for(i=2;i n) /kn:即 k8 表示最后一个皇后摆放完毕 printf(第%d 种情况:,+count);for (i = 1; i = n; i+)printf(%d,%d) ,i,ai);/打印情况 printf(n); else /8 个皇后未全部摆放完毕 for (i = 1; i = n; i+)/摆放第 k 个皇后时 /依次从列顶端开始搜索,一直到列底端,直到找到合适位置,如果未找到,自动返回上层递归ak = i; if (check(a,k)/不冲突 Queens8(k+1);/递归摆放下一个皇后 return; main()Queens8(1);
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号