ITPub博客

首页 > 应用开发 > IT综合 > 一个求N皇后的全部解的程序

一个求N皇后的全部解的程序

原创 IT综合 作者:rongrong11 时间:2007-07-08 09:53:52 0 删除 编辑

一个求N皇后的全部解的程序

[@more@]  #include
  
  #defineN8
  
  intlayout[N];//布局
  
  intkey=0;
  
  intjudge(introw,intcol)//判断能否在(row,col)放下

  {
  

  inti;
  
  for(i=0;i   
  {

  if(layout[i]==col)return0;//同一列
    
  if(i-layout[i]==row-col)return0;//同一条主对角线
  
  if(i+layout[i]==row+col)return0;//同一条副对角线
  
  }
  
  
       更多文章 更多内容请看C/C++技术专题 数据结构 数据结构教程专题,或   return1;
  
  }
  
  voidlay(introw)//在row行上放Queen
  
  {
  
  inti;
    
  if(row==N)//放完N个Queen输出布局

 {
    
  printf(" %02d",++key);
  

  for(i=0;i   
  }
  
  else
  
  {
  
  for(i=0;i   
  {
  
  layout[row]=i;
  
  if(judge(row,i))lay(row+1);
  
  }
  
  }
  
  }
  
  intmain()
    
  {
  
  lay(0);

  return0;
  
  }

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9157419/viewspace-925148/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 分类技术
请登录后发表评论 登录
全部评论
  • 博文量
    7
  • 访问量
    10988