12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
#include <iostream> #define N 4 using namespace std; void PrintBoard(int board[N][N]) { for(int i=0;i<N;i++) {for(int j=0;j<N;j++) cout<<board[i][j]<<" "; cout<<"\n"; } cout<<"\n"; } bool isSafe(int board[N][N], int col, int row) { for(int i=0; i<col; i++) if(board[row][i]) return false; for(int i=row, j=col; i>=0 && j>=0; i--, j--) if(board[i][j]) return false; for (int i=row, j=col; i<N && j>=0; i++, j--) if(board[i][j]) return false; return true; } bool Solver(int board[N][N],int col) { if(col==N) return true; for(int i=0; i<N; i++) if(isSafe(board, col , i)) { board[i][col]=1; if(Solver(board,col+1)) return true; board[i][col]=0; } return false; } bool Check() { int board[N][N]; for(int i=0; i<N; i++) for(int j=0; j<N; j++) board[i][j]=0; if(Solver(board,0) == false) { cout<<"No possible output!"; return false; } PrintBoard(board); return true; } int main() { Check(); return 0; }
return false
return true
continue
bool Check()
void Check()
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
#include <iostream> using namespace std; const int N = 4; void PrintBoard(int board[N][N]) { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) cout << board[i][j] << ' '; cout << '\n'; } cout << '\n'; } bool isSafe(int board[N][N], int col, int row) { for (int i = 0; i < col; i++) if (board[row][i]) return false; for(int i = row, j = col; i >= 0 && j >= 0; i--, j--) if (board[i][j]) return false; for (int i = row, j = col; i < N && j >= 0; i++, j--) if (board[i][j]) return false; return true; } void Solver(int board[N][N], int col) { if (col == N) PrintBoard(board); else for (int i = 0; i < N; i++) if (isSafe(board, col, i)) { board[i][col] = 1; Solver(board, col + 1); board[i][col] = 0; } } void Check() { int board[N][N]; for (int i = 0; i < N; i++) for (int j = 0; j < N; j++) board[i][j] = 0; Solver(board, 0); } int main() { Check(); }