Related Articles
Shift matrix elements row-wise by k
• Difficulty Level : Easy
• Last Updated : 27 Jun, 2018

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