#include "iostream.h" #include "string.h" #include "math.h" const int col=4;//4 columns int r[col];//r[i]represents for the r[i]-th column of i-th row bool fit(int row) { for (int i=0;i<row ;i++) if (r[i]==r[row]||abs(i-row)==abs(r[i]-r[row])) return 0; return 1; } void dfs(int row)//row starts from 0 { if (row==col) { for (int j=0;j<col;j++) cout<<r[j]<<'\t'; cout<<endl;return; } for (int i=0;i<col;i++) { r[row]=i; if (fit(row))//不符合要求的就不会深入了 dfs(row+1); //r[row]=-1;//置位 } } void main() { dfs(0); }