Skip to content
Related Articles

Related Articles

Sum of alternate elements of a N x N matrix
  • Difficulty Level : Basic
  • Last Updated : 31 Oct, 2018

Given an NxN matrix. The task is to find the sum of the alternate elements of the given matrix.

For example, in a 2 x 2 matrix the alternate elements are { A[0][0], A[1, 1] } and { A[1][0], A[0][1] }.

Examples:

Input: mat[][] = { { 1, 2},
                   { 3, 4} }
Output : Sum of alternate elements : 5, 5
Explanation: The alternate elements are {1, 4} 
and {2, 3} so their sum are 5, 5.

Input : mat[][] = { { 1, 2, 3 },
                    { 4, 5, 6 },
                    { 7, 8, 9 } }
Output : Sum of alternate elements :25, 20

The idea is to traverse the matrix and also keep a counter. We will add the elements whose counter value is even in one variable and with odd counter value in other and finally print the two sums on complete traversal of the matrix.

Below is the implementation of the above approach:

C++






// C++ program to print sum of alternate
// elements of a N x N matrix
#include <bits/stdc++.h>
using namespace std;
  
// Function to find the sum of alternate
// elements of a matrix
void sumAlternate(int* arr, int n)
{
    int sum1 = 0, sum2 = 0;
  
    // check the alternate elements
    for (int i = 0; i < n * n; i++) {
  
        // count the elements at even places
        if (i % 2 == 0)
            sum1 += *(arr + i);
  
        else // count the elements at odd places
            sum2 += *(arr + i);
    }
  
    cout << "Sum of alternate elements : " << sum1
         << ", " << sum2 << endl;
}
  
// Driver code
int main()
{
    int mat[3][3] = { { 1, 2, 3 },
                      { 4, 5, 6 },
                      { 7, 8, 9 } };
    int n = 3;
  
    // find the sum of alternate elements
    sumAlternate(&mat[0][0], n);
  
    return 0;
}

Java




// Java program to print sum of alternate
// elements of a N x N matrix
  
class GFG
{
        // Function to find the sum of alternate
        // elements of a matrix
        static void sumAlternate(int [][] mat, int n)
        {
            int sum1 = 0, sum2 = 0;
            int cnt=0;
            // check the alternate elements
            for (int i = 0; i < n; i++) {
          
                for(int j=0;j<n ;j++)
                {
                    if (cnt % 2 == 0)
                        sum1 += mat[i][j];
              
                    else // count the elements at odd places
                        sum2 += mat[i][j];
                  
                   cnt++;
                
            }
          
            System.out.println("Sum of alternate elements : " + sum1 + ", " + sum2);
        }
          
        // Driver code
        public static void main(String [] args)
        {
            int [][]mat = { { 1, 2, 3 },
                            { 4, 5, 6 },
                            { 7, 8, 9 } };
            int n = 3;
          
            // find the sum of alternate elements
            sumAlternate(mat, n);
          
              
        }
  
}
  
// This code is contributed by ihritik

Python 3




# Python 3 program to print sum of 
# alternate elements of a N x N matrix
  
# Function to find the sum of 
# alternate elements of a matrix
def sumAlternate(arr, n):
  
    sum1 = 0
    sum2 = 0
  
    # check the alternate elements
    i = 0
    while i < n * n :
  
        # count the elements at 
        # even places
        if (i % 2 == 0):
            sum1 += (arr + i)
  
        else: # count the elements 
              # at odd places
            sum2 += (arr + i)
              
        i += 1
  
    print("Sum of alternate elements : " + 
             str(sum1) + ", " + str(sum2))
  
# Driver code
if __name__ == "__main__":
    mat = [[ 1, 2, 3 ],
        [4, 5, 6 ],
        [7, 8, 9 ]]
    n = 3
  
    # find the sum of alternate elements
    sumAlternate(mat[0][0], n)
  
# This code is contributed
# by ChitraNayal

C#




// C# program to print sum of alternate
// elements of a N x N matrix
using System;
class GFG
{
// Function to find the sum of 
// alternate elements of a matrix
static void sumAlternate(int[,] mat, 
                         int n)
{
    int sum1 = 0, sum2 = 0;
    int cnt = 0;
      
    // check the alternate elements
    for (int i = 0; i < n; i++)
    {
  
        for(int j = 0; j < n; j++)
        {
            if (cnt % 2 == 0)
                sum1 += mat[i, j];
      
            else // count the elements
                 // at odd places
                sum2 += mat[i, j];
          
        cnt++;
        
    }
  
    Console.WriteLine("Sum of alternate elements : "
                                  sum1 + ", " + sum2);
}
  
// Driver code
public static void Main()
{
    int[,] mat = { { 1, 2, 3 },
                    { 4, 5, 6 },
                    { 7, 8, 9 } };
    int n = 3;
  
    // find the sum of alternate elements
    sumAlternate(mat, n);
}
}
  
// This code is contributed
// by Akanksha Rai(Abby_akku)
Output:
Sum of alternate elements : 25, 20

Time Complexity: O(N2)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :