正文

回溯法N皇后2009-07-24 15:37:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/manbuyuduan/45543.html

分享到:

#include <iostream.h>#include <math.h>//x[i] represent to  Queen i place in row i group x[i]void backtrack(int t);int const n=4;//the number of queenint x[n+1];   // the solutionint sum=0;    //teh number of the solution int nQueen(){ for(int i=0;i<=n;i++)  x[i]=0; backtrack(1); return sum;} bool placesafe(int k){ for(int j=1;j<k;j++)   if( abs(k-j)==abs(x[j]-x[k]) || (x[j]==x[k]) )//the slope is 1 or -1,or in the same group     return false;   return true;} void backtrack(int t){ if(t>n) {  sum++;   for(int j=1;j<=n;j++)  {   cout<<j<<","<<x[j]<<"#";  }  cout<<endl; } else  for( int i=1;i<=n;i++)  {   x[t]=i;   if( placesafe(t) )    backtrack(t+1);  }} int main(){ cout<<nQueen()<<endl; return 0;}

阅读(2082) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册