八皇后源码
来源:互联网 发布:服装裁剪排版软件 编辑:程序博客网 时间:2024/04/28 16:58
#include<iostream>#include<cstring>using namespace std;#define MAX 8int queen_array[MAX][MAX];static int NUM=0;void print(){ int i,j; for(i=0;i<MAX;i++) { for(j=0;j<MAX;j++)cout<<queen_array[i][j]<<" "; cout<<endl; } }bool check(int row,int col){ int i,j; for(i=row-1,j=col;i>=0;i--) if(1==queen_array[i][j]) return false; for(i=row-1,j=col-1;i>=0&&j>=0;i--,j--) if(1==queen_array[i][j]) return false; for(i=row-1,j=col+1;i>=0&&j<MAX;i--,j++) if(1==queen_array[i][j]) return false; return true;}void put(int row,int col){ if(check(row,col)) { queen_array[row][col]=1; if(row>=MAX-1) { NUM++; cout<<"the "<<NUM<<" method:"<<endl; print(); cout<<"***************************"<<endl; } else { put(row+1,0); } queen_array[row][col]=0; } if(col<MAX-1) put(row,col+1);}int main(){ memset(queen_array,0,sizeof(int)*MAX*MAX); put(0,0); return 1;}