八皇后问题求解

2016-02-19 12:39 34 1 收藏

下面是个简单易学的八皇后问题求解教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - 编程语言 】

/************************************************************************/
  /* */
  /* 问题: 在8×8的国际象棋棋盘上放置8个皇后,要求任意两个皇后 */
  /* 不能在同一行、同一列或同一条对角线上。 */
  /* */
  /* 本程序使用递归-回溯法求解8皇后问题。Visual C++ 6.0 调试通过。 */
  /* 作者 晨星 2002年5月9日 */
  /* */
  /************************************************************************/
  
  #include stdio.h
  #include conio.h
  #include math.h
  
  #define QUEENS 8
  
  int iCount = 0;
  
  int Site[QUEENS];
  
  void Queen(int n);
  
  void Output();
  
  int IsValid(int n);
  
  /*----------------------------Main:主函数。----------------------------*/
  void main()
  { 
  Queen(0);
  
  getch();
  }
  
  /*-----------------Queen:递归放置第n个皇后,程序的核心!----------------*/
  void Queen(int n)
  {
  int i;
  
  if(n == QUEENS)
  {
  Output();
  return;
  }
  
  for(i = 1 ; i = QUEENS ; i++)
  {
  Site[n] = i;
  
  if(IsValid(n))
  Queen(n + 1);
  }
  }
  
  /*------IsValid:判定第n个皇后放上去之后,是否合法,即是否无冲突。------*/
  int IsValid(int n)
  {
  int i;
  
  for(i = 0 ; i n ; i++)
  {
  if(Site[i] == Site[n])
  return 0;
  
  if(abs(Site[i] - Site[n]) == (n - i))
  return 0;
  }
  
  return 1;
  }
  
  /*------------Output:输出一个解,即一种没有冲突的放置方案。------------*/
  void Output()
  {
  int i;
  
  printf( "No.%-5d " , ++iCount);
  
  for(i = 0 ; i QUEENS ; i++)
  printf( "%d " , Site[i]);
  
  printf( " ");
  }
  

来源:http://www.tulaoshi.com/n/20160219/1601428.html

延伸阅读
标签: PHP
一句话中截取一部分,则有可能会出现半个汉字,则显示为问号. 若全是汉字,则可截取偶数字节,但有可以有标点符号,空格之类的就不好办了,求解决办法./** * 截取中文部分字符串 * * 截取指定字符串指定长度的函数,该函数可自动判定中英文,不会出现乱码 * * @access public * @param string $str 要处理的字符串 * @param int ...
满月给宝宝剃胎毛一直是老一辈流传下的风俗。有不少妈妈都提出疑问:宝宝的胎毛是不是一定要剃,剃胎毛时又应该注意些什么等等。根据这些问题,小编为你整理了一下八个问题,希望妈妈们能更好地护理宝宝的胎毛。 1、宝宝满月了,是不是要剃胎毛? 一些地方有这样的习俗,婴儿满月要剃个“满月头”,把胎毛甚至眉毛全部剃光。认为这样做,将...
标签: 分娩
三岁那年,她成了一个不讨喜欢的皇后,十五岁那年,她进了冷宫,二十岁那年,凤是凤,凰是凰,高高再上的他终于知道,这颗眼中钉自从落进心里那日起,就再也拔不掉了。 前一阵子,徐铮与王宝强再度合作的《泰囧》在国内上映,不仅票房成绩良好也获得了观众的好评,而在这部电影里出演电梯女的泰国人妖rose也获得了很多的好评。近期这位人...
标签: 营养价值
每次闻到路边摊上烤红薯的味道,你是不是觉得它香喷喷的,但是你知道吗?其实红薯叶的保健价值一点也不比其他蔬菜差,红薯叶被称作蔬菜皇后一点也不为过。那么你知道红薯叶的营养价值吗?知道红薯叶的功效与作用吗?知道红薯叶的做法吗? 曾几何时,在红薯收获的季节,红薯叶从来没有被人们关注过,人们将磨成饲料去喂养家畜。下面我...
标签: 整形
论观望整容的重要性 以前去过韩国的人都知道,咱中肯的说句评价,不说韩国人长得丑但是也绝不是像电视剧里那样每个都很抽条的。而如今再去韩国,大街上随处都是养眼的靓女俊男。整容,在韩国已经是非常普遍的一件事儿了。很多父母不反对甚至是支持,有些还会将它作为礼物送给孩子。 中国这些年来对整容的态度也越来越开放了,谁不爱美呢!...

经验教程

242

收藏

38
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部