八皇后问题的实现(从简单到难得各种解法)

上传人:第*** 文档编号:32827279 上传时间:2018-02-12 格式:DOCX 页数:6 大小:21.29KB
返回 下载 相关 举报
八皇后问题的实现(从简单到难得各种解法)_第1页
第1页 / 共6页
八皇后问题的实现(从简单到难得各种解法)_第2页
第2页 / 共6页
八皇后问题的实现(从简单到难得各种解法)_第3页
第3页 / 共6页
八皇后问题的实现(从简单到难得各种解法)_第4页
第4页 / 共6页
八皇后问题的实现(从简单到难得各种解法)_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《八皇后问题的实现(从简单到难得各种解法)》由会员分享,可在线阅读,更多相关《八皇后问题的实现(从简单到难得各种解法)(6页珍藏版)》请在金锄头文库上搜索。

1、八皇后问题的实现(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 in

2、t 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);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号