八皇后问题的实现(C语言)_第1页
八皇后问题的实现(C语言)_第2页
八皇后问题的实现(C语言)_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、八皇后问题的实现(C语言)#include <stdio.h>#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 < N; i +)   if(chessicol = 1) /有 同列

2、的       return 0;      for(j = 0; j < N; j+)       if(chessrowj=1) /有同行的         return 0;        if(i-row)=(j-col)|(i-row)=(col-j)&&chessij=1) / 对角线上有的&#

3、160;        return 0;       return 1;void print_chess() / 打印放置的方案int i, j;for(i = 0; i < N; i+)   for(j = 0; j < N; j+)       printf("%d ", chessij);      printf("n"

4、;);printf("n");int put(int row)     / 放置棋子, row是从哪一行开始, 通常是0int j, s;for(j = 0; j < N; j+) / 此一行的每一个格子都要试试能不能放   if(canput(row, j) / 假如这格能放的话       chessrowj = 1; / 放置    if(row = N-1) / 已经到了最后一行, 那么肯定成功*  &

5、#160;      count = count +1;    print_chess();     chessrowj = 0; /成功后, 寻找下一种方法     continue;        s = put(row+1); / 放置下一行的    if(s = 0)    / 假如下一行不能放  &

6、#160;      chessrowj = 0; / 那么这格是放错了的, 清除     continue;           / 找本行的下一个方格        else         break;          if(j=N)    / 如果这一行的每个空格都不能放置   return 0; / 那么本行放置失败else   return 1; / 本行放置成功int main()int s ;s = put(0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论