From c8574e48edbfeac112d0c6a34bc603524695bfc3 Mon Sep 17 00:00:00 2001 From: Mudit Agarwal <32092845+Mudit-1999@users.noreply.github.com> Date: Wed, 30 Oct 2019 21:43:48 +0530 Subject: [PATCH] Create Sort.cpp --- Sort.cpp | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 Sort.cpp diff --git a/Sort.cpp b/Sort.cpp new file mode 100644 index 0000000..941b9bc --- /dev/null +++ b/Sort.cpp @@ -0,0 +1,66 @@ +#include +#include +#include + +int board[20],count; + +int main() +{ + int n,i,j; + void queen(int row,int n); + printf("\n\t --- N Queen Problem using Backtracking --- "); + printf("\n\nEnter number of Queens: "); + scanf("%d", &n); + queen(1,n); + return 0; +} + +void print(int n) +{ + int i,j; + printf("\n\nSolution %d:\n\n",++count); + for(i=1;i<=n;++i) + printf("\t%d",i); + for(i=1;i<=n;++i) + { + printf("\n\n%d",i); + for(j=1;j<=n;++j) + { + if(board[i]==j) + printf("\tQ"); + else + printf("\t-"); + } + } + printf("\n\n"); +} + +int place(int row,int column) +{ + int i; + for(i=1;i<=row-1;++i) + { + if(board[i]==column) + return 0; + else + if(abs(board[i]-column)==abs(i-row)) + return 0; + } + return 1; +} + +void queen(int row,int n) +{ + int column; + for(column=1;column<=n;++column) + { + if(place(row,column)) + { + board[row]=column; + if(row==n) + print(n); + else + queen(row+1,n); + } + } +}