C/C++ code #include < iostream > #include < string > using namespace std; class Queen{ public : Queen(); ~ Queen(); private : int result; string queen[ 8 ]; int state[ 8 ]; void set ( int , int ); bool check( int , int ); void print(); }; Queen::Queen(){ result = 0 ; for ( int i = 0 ;i < 8 ;i ++ ){ queen[i] = " -------- " ; } set ( 0 , 0 ); } Queen:: ~ Queen(){ } void Queen:: set ( int i, int j){ if (i == 8 ){ result ++ ; print(); queen[ 7 ] = " -------- " ; set ( 7 ,state[ 7 ] + 1 ); } else if (j == 8 ){ if (i == 0 ) { cout << " 共 " << result << " 种放置方法! " << endl; } else { queen[i - 1 ] = " -------- " ; set (i - 1 ,state[i - 1 ] + 1 ); } } else if (check(i,j)){ queen[i][j] = ' + ' ; state[i] = j; set (i + 1 , 0 ); } else { set (i,j + 1 ); } } bool Queen::check( int i, int j){ for ( int c = 0 ;c < i;c ++ ){ if (state[c] == j || state[c] - j == c - i || state[c] - j == i - c){ return false ; } } return true ; } void Queen::print(){ for ( int i = 0 ;i < 8 ;i ++ ){ cout << queen[i] << endl; } cout << " ====== " << endl; } int main(){ Queen my; system( " pause " ); return 0 ; }