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]