From 1a7e53f42355404deac4ef58e25e7903bc0e9962 Mon Sep 17 00:00:00 2001 From: Akhilesh Singh <64158818+akhilesh59@users.noreply.github.com> Date: Sat, 30 Oct 2021 15:02:38 +0530 Subject: [PATCH] Added Knight's Tour Problem - Recursion --- cpp_codes/21. Knight's Tour.cpp | 51 +++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 cpp_codes/21. Knight's Tour.cpp diff --git a/cpp_codes/21. Knight's Tour.cpp b/cpp_codes/21. Knight's Tour.cpp new file mode 100644 index 0000000..3ab5287 --- /dev/null +++ b/cpp_codes/21. Knight's Tour.cpp @@ -0,0 +1,51 @@ +#include // Accepted +using namespace std; + +void display(int n, vector>& mv) { + for(int i=0; i>& mv) { // mv -> moves vector + + if(r < 0 || c < 0 || r >= n || c >= n || mv[r][c] > 0) { + return; + } + else if(move == n*n) { + mv[r][c] = move; + display(n,mv); + mv[r][c] = 0; + return; + } + + mv[r][c] = move; + + knightTour(n,r-2, c+1, move+1, mv); + knightTour(n,r-1, c+2, move+1, mv); + knightTour(n,r+1, c+2, move+1, mv); + knightTour(n,r+2, c+1, move+1, mv); + knightTour(n,r+2, c-1, move+1, mv); + knightTour(n,r+1, c-2, move+1, mv); + knightTour(n,r-1, c-2, move+1, mv); + knightTour(n,r-2, c-1, move+1, mv); + + mv[r][c] = 0; + + return; +} + +int main() { + int n,r,c; + cin >> n >> r >> c; + + vector> mv(n,vector(n,0)); + + knightTour(n,r,c,1,mv); + + + return 0; +} \ No newline at end of file