# 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 ");         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 (" ");         \$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

## tags:

Matrix School Programming Matrix