缥缈孤鸿 发表于 2013-2-4 19:58:30

8皇后问题c++的递归实现

最近用C++递归形式实现了8皇后问题,可能效率有点低
#include   <iostream>   using namespace std;int count=0;void placeQueen(int m,int flag,char chess){      int j; for(j=0;j<8;j++)if(flag==0){   int ii,jj; char c;               int f; for(ii=0;ii<8;ii++)         for(jj=0;jj<8;jj++) { c=chess;         f=flag;}         for(ii=0;ii<8;ii++)         for(jj=0;jj<8;jj++) {if(f==0 && (ii+jj==m+j || m==ii || j==jj || m-j==ii-jj))             f=-1; }   c='#';                  f=1; if(m==7){ cout<<++count<<endl;for(ii=0;ii<8;ii++){for(jj=0;jj<8;jj++){cout<<c<<" ";}cout<<endl;} cout<<endl;cout<<endl;return;}elseplaceQueen(m+1,f,c);}//if(j==8)return;}void   main()   {      char c;      int f;int i,j;      for(i=0;i<8;i++)for(j=0;j<8;j++){f=0;c='*';} // for(i=0;i<8;i++)   placeQueen(0,f,c);}
页: [1]
查看完整版本: 8皇后问题c++的递归实现