# Shift matrix elements row-wise by k

Given a square matrix mat[][] and a number k. The task is to shift first k elements of each row in the right of the matrix.

Examples :

```Input : mat[N][N] = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}}
k = 2
Output :mat[N][N] = {{3, 1, 2}
{6, 4, 5}
{9, 7, 8}}

Input : mat[N][N] = {{1, 2, 3, 4}
{5, 6, 7, 8}
{9, 10, 11, 12}
{13, 14, 15, 16}}
k = 2
Output :mat[N][N] = {{3, 4, 1, 2}
{7, 8, 5, 6}
{11, 12, 9, 10}
{15, 16, 13, 14}}

Note: Matrix should be a square matrix
```

## C++

 `// C++ program to shift k elements in a matrix. ` `#include ` `using` `namespace` `std; ` `#define N 4 ` ` `  `// Function to shift first k elements of  ` `// each row of matrix. ` `void` `shiftMatrixByK(``int` `mat[N][N], ``int` `k) ` `{ ` `    ``if` `(k > N) { ` `        ``cout << ``"shifting is not possible"` `<< endl; ` `        ``return``; ` `    ``} ` `     `  `    ``int` `j = 0; ` `    ``while` `(j < N) { ` `         `  `        ``// Print elements from index k ` `        ``for` `(``int` `i = k; i < N; i++) ` `            ``cout << mat[j][i] << ``" "``; ` `             `  `        ``// Print elements before index k ` `        ``for` `(``int` `i = 0; i < k; i++) ` `            ``cout << mat[j][i] << ``" "``; ` `             `  `        ``cout << endl; ` `        ``j++; ` `    ``} ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `mat[N][N] = {{1, 2, 3, 4}, ` `                     ``{5, 6, 7, 8}, ` `                     ``{9, 10, 11, 12}, ` `                     ``{13, 14, 15, 16}}; ` `    ``int` `k = 2; ` `     `  `    ``// Function call ` `    ``shiftMatrixByK(mat, k); ` `     `  `    ``return` `0; ` `} `

## Java

 `// Java program to shift k elements in a  ` `// matrix. ` `import` `java.io.*; ` `import` `java.util.*; ` ` `  `public` `class` `GFG { ` `      `  `    ``static` `int` `N = ``4``; ` `      `  `    ``// Function to shift first k elements  ` `    ``// of each row of matrix. ` `    ``static` `void` `shiftMatrixByK(``int` `[][]mat, ` `                                    ``int` `k) ` `    ``{ ` `        ``if` `(k > N) { ` `            ``System.out.print(``"Shifting is"` `                        ``+ ``" not possible"``); ` `            ``return``; ` `        ``} ` `          `  `        ``int` `j = ``0``; ` `        ``while` `(j < N) { ` `              `  `            ``// Print elements from index k ` `            ``for` `(``int` `i = k; i < N; i++) ` `                ``System.out.print(mat[j][i] + ``" "``); ` `                  `  `            ``// Print elements before index k ` `            ``for` `(``int` `i = ``0``; i < k; i++) ` `                ``System.out.print(mat[j][i] + ``" "``); ` `                  `  `            ``System.out.println(); ` `            ``j++; ` `        ``} ` `    ``} ` `      `  `    ``// Driver code ` `    ``public` `static` `void` `main(String args[]) ` `    ``{ ` `        ``int` `[][]mat = ``new` `int` `[][] ` `                    ``{ {``1``, ``2``, ``3``, ``4``}, ` `                      ``{``5``, ``6``, ``7``, ``8``}, ` `                      ``{``9``, ``10``, ``11``, ``12``}, ` `                      ``{``13``, ``14``, ``15``, ``16``} }; ` `        ``int` `k = ``2``; ` `          `  `        ``// Function call ` `        ``shiftMatrixByK(mat, k); ` `    ``} ` `} ` `  `  `// This code is contributed by Manish Shaw  ` `// (manishshaw1) `

## Python3

 `# Python3 program to shift k  ` `# elements in a matrix. ` ` `  `N ``=` `4` `# Function to shift first k  ` `# elements of each row of  ` `# matrix. ` `def` `shiftMatrixByK(mat, k): ` `    ``if` `(k > N) : ` `        ``print` `(``"shifting is"` `            ``" not possible"``) ` `        ``return` `     `  `    ``j ``=` `0` `    ``while` `(j < N) : ` `         `  `        ``# Print elements from ` `        ``# index k ` `        ``for` `i ``in` `range``(k, N): ` `            ``print` `(``"{} "` `.  ` `            ``format``(mat[j][i]), end``=``"") ` `             `  `        ``# Print elements before ` `        ``# index k ` `        ``for` `i ``in` `range``(``0``, k): ` `            ``print` `(``"{} "` `.  ` `            ``format``(mat[j][i]), end``=``"") ` `             `  `        ``print` `("") ` `        ``j ``=` `j ``+` `1` ` `  `# Driver code ` `mat ``=` `[[``1``, ``2``, ``3``, ``4``], ` `       ``[``5``, ``6``, ``7``, ``8``], ` `       ``[``9``, ``10``, ``11``, ``12``], ` `       ``[``13``, ``14``, ``15``, ``16``]] ` `k ``=` `2` ` `  `# Function call ` `shiftMatrixByK(mat, k) ` ` `  `# This code is contributed by  ` `# Manish Shaw (manishshaw1) `

## C#

 `// C# program to shift k elements in a  ` `// matrix. ` `using` `System; ` ` `  `class` `GFG { ` `     `  `    ``static` `int` `N = 4; ` `     `  `    ``// Function to shift first k elements  ` `    ``// of each row of matrix. ` `    ``static` `void` `shiftMatrixByK(``int` `[,]mat, ` `                                    ``int` `k) ` `    ``{ ` `        ``if` `(k > N) { ` `            ``Console.WriteLine(``"shifting is"` `                        ``+ ``" not possible"``); ` `            ``return``; ` `        ``} ` `         `  `        ``int` `j = 0; ` `        ``while` `(j < N) { ` `             `  `            ``// Print elements from index k ` `            ``for` `(``int` `i = k; i < N; i++) ` `                ``Console.Write(mat[j,i] + ``" "``); ` `                 `  `            ``// Print elements before index k ` `            ``for` `(``int` `i = 0; i < k; i++) ` `                ``Console.Write(mat[j,i] + ``" "``); ` `                 `  `            ``Console.WriteLine(); ` `            ``j++; ` `        ``} ` `    ``} ` `     `  `    ``// Driver code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `[,]mat = ``new` `int` `[,] ` `                    ``{ {1, 2, 3, 4}, ` `                      ``{5, 6, 7, 8}, ` `                      ``{9, 10, 11, 12}, ` `                      ``{13, 14, 15, 16} }; ` `        ``int` `k = 2; ` `         `  `        ``// Function call ` `        ``shiftMatrixByK(mat, k); ` `    ``} ` `} ` ` `  `// This code is contributed by Manish Shaw  ` `// (manishshaw1) `

## PHP

 ` ``\$N``)  ` `    ``{ ` `        ``echo` `(``"shifting is not possible\n"``); ` `        ``return``; ` `    ``} ` `     `  `    ``\$j` `= 0; ` `    ``while` `(``\$j` `< ``\$N``)  ` `    ``{ ` `         `  `        ``// Print elements from index k ` `        ``for` `(``\$i` `= ``\$k``; ``\$i` `< ``\$N``; ``\$i``++) ` `            ``echo` `(``\$mat``[``\$j``][``\$i``].``" "``); ` `             `  `        ``// Print elements before index k ` `        ``for` `(``\$i` `= 0; ``\$i` `< ``\$k``; ``\$i``++) ` `            ``echo` `(``\$mat``[``\$j``][``\$i``].``" "``); ` `             `  `        ``echo` `(``"\n"``); ` `        ``\$j``++; ` `    ``} ` `} ` ` `  `// Driver code ` `\$mat` `= ``array``(``array``(1, 2, 3, 4), ` `             ``array``(5, 6, 7, 8), ` `             ``array``(9, 10, 11, 12), ` `             ``array``(13, 14, 15, 16)); ` `\$k` `= 2; ` `     `  `// Function call ` `shiftMatrixByK(``\$mat``, ``\$k``); ` ` `  `// This code is contributed by  ` `// Manish Shaw(manishshaw1) ` `?> `

Output :

```3 4 1 2
7 8 5 6
11 12 9 10
15 16 13 14
```

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : manishshaw1

Article Tags :
Practice Tags :

1

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.