首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 八皇后问题 [已结贴,结贴人:grellen]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-26 11:10:57 楼主
    #include <stdio.h>
    #include <conio.h>
    int x[9]={0};
    int n=1;
    int chk(int a, int b) /*检测(x,y)处的皇后是否与已有皇后冲突,同行、同斜线均为冲突。*/
    {
    int i;
    if(a != 0)
    {
      for(i=1; i <= a; i++)
      {
      if((b == x[i]) ¦ ¦ (a  - i == b - x[i]) ¦ ¦ (a - i == x[i] - b))
      {
        return 0;  /*代表有冲突*/
      }
      }
    }

    return 1;  /*没有冲突*/
    }

    void output()
    {
    int i,j;
    for(i=1;i <=8;i++)
      for(j=1;j <=8;j++)
      {gotoxy(j+1,i); printf(".");}
    for(i=1;i <=8;i++)
      {gotoxy(i+1,x[i]); printf("o");}
    gotoxy(20,10);
    printf("view the %d font now!\n",n++);
    getch();
    }

    void main()
    {
    int i,j,bool;
    for(i=1;i <=8;i++)
    {
          bool=0;
          for(j=x[i]+1;j <=8;j++)
          {
              bool=chk(i,j);
              if(bool==1)
              {
                  x[i]=j;
                  break;
              }
          }
          if(j==9 && bool==0)
          {
              x[i]=0;
              i=i-2;
          }
          if(i==8 && bool==1)
          {
              output();
              x[i]=0;
              i=i-2;
          }
          if(i==-1)
          {
              break;
          }
    }
    }


    这段代码的主要思想是什么,看不是很懂
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-26 12:39:511楼 得分:3
    http://blog.csdn.net/lixiaoshan_18899/archive/2006/09/26/1286716.aspx
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-26 12:55:062楼 得分:3
    基本思想是:一个N阶矩阵一行,一列以及对角线上的棋是不能冲突的!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-26 12:56:233楼 得分:0
    也就是一行和一列以及对角线上不能有两颗或更多的棋!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-26 13:01:034楼 得分:0
    ls给的是递归的,上面的程序是非递归的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-26 22:06:525楼 得分:0
    有严蔚敏的书没,,上面有图,很形象
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-27 00:20:126楼 得分:3
    穷举所有摆放方法,每放一个旗子判定是否符合条件
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-27 14:32:337楼 得分:3
    就是穷举判断同一行跟同一列以及对角线上是否有两颗以上的棋子
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-29 19:49:028楼 得分:3
    http://topic.csdn.net/u/20070919/23/9e68f740-d9ab-4120-bb2d-5d19273811a6.html

    我的代码,效率很高的并行版本
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-01 10:41:199楼 得分:3
    以后需再关注,现在先帮你顶一下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-01 11:40:5810楼 得分:2
    我也想知道,正在找這方面的資料~~~~~
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved