| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 618 人关注过本帖
标题:求解皇后问题
只看楼主 加入收藏
cake1029
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-12-22
收藏
 问题点数:0 回复次数:4 
求解皇后问题

求解皇后问题,有人给了下列程序,可惜我刚学还看不懂~
望高手帮我注释一下,不胜感激~!!!

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int Judge(int *p, int j)
            //判断当前棋子位置是否符合规则,是则返回1,否则返回0;
{
  int i;
  for(i=0;i<j;i++)
  {
    if(p[j]==p[i]) return 0;
    if(abs(p[j]-p[i])==j-i) return 0;
  }
  return 1;
}


int main()
{
   int a[8]; //a[i]表示第i行的后所在位置(a[3]=0表示第3行的后在第0列)
   int i=0,j=0,k=0;

   for(a[0]=0;a[0]<8;j=0,a[j]++)
     for(a[++j]=0;a[j]<8;j=1,a[j]++)
      if(Judge(a,j))
       for(a[++j]=0;a[j]<8;j=2,a[j]++)
        if(Judge(a,j))
         for(a[++j]=0;a[j]<8;j=3,a[j]++)
          if(Judge(a,j))
           for(a[++j]=0;a[j]<8;j=4,a[j]++)
            if(Judge(a,j))
             for(a[++j]=0;a[j]<8;j=5,a[j]++)
              if(Judge(a,j))
               for(a[++j]=0;a[j]<8;j=6,a[j]++)
                if(Judge(a,j))
                 for(a[++j]=0;a[j]<8;a[j]++)
                  if(Judge(a,j))
                  { for(i=0;i<8;i++) printf("%d",a[i]);
                   printf("%3s"," ");
                   if(!(++k%7)) printf("\n");
                  }
   printf("\n\n%d\n\n",k);
   printf("\n请按任意键结束...");
   getch();
   return 0;
}

搜索更多相关主题的帖子: 皇后 求解 
2005-12-22 20:21
cake1029
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-12-22
收藏
得分:0 
在线等~~急~~!
2005-12-22 20:23
cake1029
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-12-22
收藏
得分:0 

高手来帮忙啊~!!!!!!!!!

2005-12-22 23:03
cleverfox
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-11-21
收藏
得分:0 

这是经典题目啊,许多书上都有(不仅仅是C语言)。
算法:穷举法
具体实现——回朔法,即是用数组的代替多重循环。
即是
a[0]——第一重
a[1]——第二重
..........
..........
..........
a[n]——第n重
总的来说,是用数组a产生一个排列,然后再判断。
(算法出来了,编程应该是不成问题的)


Fox
2005-12-25 19:14
cake1029
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-12-22
收藏
得分:0 

哈哈~谢~!

2005-12-27 13:33
快速回复:求解皇后问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018477 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved