Open In App

Sum of even numbers at even position

Last Updated : 31 Mar, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Given an array of size n. The problem is to find the sum of numbers that are even and are at even index.

Examples: 

Input :  arr[] = {5, 6, 12, 1, 18, 8}
Output : 30
Explanation: Here, n = 6 
Now here are index and numbers as: index->arr[index]
0->5, 1->6, 2->12, 3->1, 4->18, 5->8
so, number which are even and are at even indices 
are: 2->12, 4->18
sum = 12+18 = 30

Input  : arr[] = {3, 20, 17, 9, 2, 10, 
                        18, 13, 6, 18}
Output : 26
Explanation: Here, n = 10
Now here are index and numbers as: index->arr[index]
0->3, 1->20, 2->17, 3->9, 4->2, 5->10, 
6->18, 7->13, 8->6, 9->18 
So, number which are even and are at even indices are: 
4->2, 6->18, 8->6
sum = 2+18+6 = 26

Brute Force Approach:

The idea behind this approach is to store the even numbers at even indices in a hash table and then calculate the sum of these numbers. We can use an unordered map to store the even numbers along with their index.
 

Here are the steps for this approach:

  1. Create an empty unordered map to store the even numbers at even indices and their corresponding indices.
  2. Iterate over the array and check if the index is even and the number at that index is even. If both conditions are true, then insert the number into the unordered map along with its index.
  3. Iterate over the unordered map and calculate the sum of the even numbers.
  4. Return the sum.
     

C++




// C++ implementation to
// find sum of even numbers
// at even indices
#include <bits/stdc++.h>
using namespace std;
 
// Function to calculate sum
// of even numbers at even indices
int sum_even_and_even_index(int arr[], int n) {
    unordered_map<int, int> mp; // unordered map to store even numbers at even indices
    int sum = 0;
    for (int i = 0; i < n; i += 2) {
        if (arr[i] % 2 == 0) {
            mp[i] = arr[i]; // insert even number and its index into the unordered map
        }
    }
    for (auto x : mp) {
        sum += x.second; // calculate the sum of even numbers in the unordered map
    }
    return sum;
}
 
// Driver program to test above
int main() {
    int arr[] = {5, 6, 12, 1, 18, 8};
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "Sum of even numbers at even indices is "
        << sum_even_and_even_index(arr, n);
     
    return 0;
}


Java




import java.util.HashMap;
 
public class Main {
    // Function to calculate sum of even numbers at even indices
    public static int sum_even_and_even_index(int arr[], int n) {
        HashMap<Integer, Integer> mp = new HashMap<>(); // HashMap to store even numbers at even indices
        int sum = 0;
        for (int i = 0; i < n; i += 2) {
            if (arr[i] % 2 == 0) {
                mp.put(i, arr[i]); // insert even number and its index into the HashMap
            }
        }
        for (int x : mp.values()) {
            sum += x; // calculate the sum of even numbers in the HashMap
        }
        return sum;
    }
 
    public static void main(String[] args) {
        int arr[] = {5, 6, 12, 1, 18, 8};
        int n = arr.length;
        System.out.println("Sum of even numbers at even indices is " + sum_even_and_even_index(arr, n));
    }
}


Python3




# Python implementation to
# find sum of even numbers
# at even indices
 
# Function to calculate sum
# of even numbers at even indices
def sum_even_and_even_index(arr):
    mp = {} # dictionary to store even numbers at even indices
    sum = 0
    for i in range(0, len(arr), 2):
        if arr[i] % 2 == 0:
            mp[i] = arr[i] # insert even number and its index into the dictionary
    for key, value in mp.items():
        sum += value # calculate the sum of even numbers in the dictionary
    return sum
 
# Driver program to test above
arr = [5, 6, 12, 1, 18, 8]
print("Sum of even numbers at even indices is", sum_even_and_even_index(arr))


C#




using System;
using System.Collections.Generic;
 
public class Program {
    // Function to calculate sum of even numbers at even
    // indices
    public static int sum_even_and_even_index(int[] arr,
                                              int n)
    {
        Dictionary<int, int> mp = new Dictionary<
            int, int>(); // Dictionary to store even numbers
                         // at even indices
        int sum = 0;
        for (int i = 0; i < n; i += 2) {
            if (arr[i] % 2 == 0) {
                mp.Add(
                    i,
                    arr[i]); // insert even number and its
                             // index into the Dictionary
            }
        }
        foreach(int x in mp.Values)
        {
            sum += x; // calculate the sum of even numbers
                      // in the Dictionary
        }
        return sum;
    }
 
    public static void Main(string[] args)
    {
        int[] arr = { 5, 6, 12, 1, 18, 8 };
        int n = arr.Length;
        Console.WriteLine(
            "Sum of even numbers at even indices is "
            + sum_even_and_even_index(arr, n));
    }
}


Javascript




// JavaScript implementation to
// find sum of even numbers
// at even indices
 
// Function to calculate sum
// of even numbers at even indices
function sum_even_and_even_index(arr) {
    let mp = new Map(); // map to store even numbers at even indices
    let sum = 0;
    for (let i = 0; i < arr.length; i += 2) {
        if (arr[i] % 2 === 0) {
            mp.set(i, arr[i]); // insert even number and its index into the map
        }
    }
    for (let [key, value] of mp) {
        sum += value; // calculate the sum of even numbers in the map
    }
    return sum;
}
 
// Driver program to test above
let arr = [5, 6, 12, 1, 18, 8];
console.log("Sum of even numbers at even indices is " + sum_even_and_even_index(arr));


Output

Sum of even numbers at even indices is 30

Time Complexity: O(N)

Auxiliary Space: O(N)
 

Another Approach:
Implementation:

C++




// C++ implementation to
// find sum of even numbers
// at even indices
#include <bits/stdc++.h>
using namespace std;
 
// Function to calculate sum
// of even numbers at even indices
int sum_even_and_even_index(
                int arr[], int n) {
 
    int i = 0, sum = 0;
     
    // calculating sum of even
    // number at even index
    for (i = 0; i < n; i+=2) {
     
        if (arr[i] % 2 == 0) {
             
            sum += arr[i];
        }
    }
     
    // required sum
    return sum;
}
 
// Driver program to test above
int main() {
    int arr[] = {5, 6, 12, 1, 18, 8};
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "Sum of even numbers at even indices is "
         << sum_even_and_even_index(arr, n);
     
    return 0;
}


Java




// Java implementation to find sum of
// even numbers at even indices
 
import java.io.*;
 
class GFG {
     
    // Function to calculate sum
    // of even numbers at even indices
    static int sum_even_and_even_index(
                       int arr[], int n)
    {
     
        int i = 0, sum = 0;
         
        // calculating sum of even
        // number at even index
        for (i = 0; i < n; i+=2) {
         
            if (arr[i] % 2 == 0) {
                sum += arr[i];
            }
        }
         
        // required sum
        return sum;
    }
 
    // Driver program to test above
    public static void main (String[] args) {
         
        int arr[] = {5, 6, 12, 1, 18, 8};
        int n = arr.length;
        System.out.println("Sum of even numbers"
                      + " at even indices is " +
             + sum_even_and_even_index(arr, n));
    }
}
 
// This code is contributed by vt_m.


Python3




# python 3 implementation to
# find sum of even numbers
# at even indices
 
# Function to calculate sum
# of even numbers at even indices
def sum_even_and_even_index(arr,n):
     
    i = 0
    sum = 0
     
# calculating sum of even
# number at even index
    for i in range(0,n,2):
        if (arr[i] % 2 == 0) :
            sum += arr[i]
         
    # required sum
    return sum
 
 
# Driver program to test above
arr = [5, 6, 12, 1, 18, 8]
n = len(arr)
print("Sum of even numbers at",
             "even indices is",
   sum_even_and_even_index(arr, n))
     
# This code is contributed by Sam007


C#




// C# implementation to find sum of
// even numbers at even indices
 
using System;
 
class GFG {
     
    // Function to calculate sum
    // of even numbers at even indices
    static int sum_even_and_even_index(
                    int []arr, int n)
    {
     
        int i = 0, sum = 0;
         
        // calculating sum of even
        // number at even index
        for (i = 0; i < n; i+=2) {
         
            if (arr[i] % 2 == 0) {
                 
                sum += arr[i];
            }
        }
         
        // required sum
        return sum;
    }
 
    // Driver program to test above
    public static void Main () {
         
        int []arr = {5, 6, 12, 1, 18, 8};
        int n = arr.Length;
        Console.WriteLine("Sum of even numbers"
                    + " at even indices is " +
            + sum_even_and_even_index(arr, n));
    }
}
 
//This code is contributed by vt_m.


PHP




<?php
// PHP implementation to
// find sum of even numbers
// at even indices
 
// Function to calculate sum
// of even numbers at even indices
function sum_even_and_even_index($arr, $n)
{
 
    $i = 0; $sum = 0;
     
    // calculating sum of even
    // number at even index
    for ($i = 0; $i < $n; $i=$i+2) {
     
        if ($arr[$i] % 2 == 0) {
             
            $sum += $arr[$i];
        }
    }
     
    // required sum
    return $sum;
}
 
// Driver Code
{
    $arr = array(5, 6, 12, 1, 18, 8);
    $n = sizeof($arr) / sizeof($arr[0]);
    echo "Sum of even numbers at ".
                 "even indices is ",
          sum_even_and_even_index($arr, $n);
     
    return 0;
}
 
// This code is contributed by nitin mittal.
?>


Javascript




<script>
 
// Javascript implementation to
// find sum of even numbers
// at even indices
 
// Function to calculate sum
// of even numbers at even indices
function sum_even_and_even_index(
                arr, n) {
 
    let i = 0, sum = 0;
     
    // calculating sum of even
    // number at even index
    for (i = 0; i < n; i += 2)
    {
        if (arr[i] % 2 == 0)
        {   
            sum += arr[i];
        }
    }
     
    // required sum
    return sum;
}
 
// Driver code
    let arr = [5, 6, 12, 1, 18, 8];
    let n = arr.length;
    document.write("Sum of even numbers at even indices is "
        + sum_even_and_even_index(arr, n));
     
// This code is contributed by Mayank Tyagi
 
</script>


Output

Sum of even numbers at even indices is 30

Time Complexity: O(n)
Auxiliary Space: O(1) 

Approach: Using List comprehension in python and Bitwise & operator  

This method uses a list comprehension to create a new list of the even numbers at even indices in the array, and then we use the sum() function to calculate the sum of the numbers.

C++




#include <iostream>
using namespace std;
 
int main() {
 
    int arr[] = {5, 6, 12, 1, 18, 8};
    int n = sizeof(arr) / sizeof(arr[0]);
 
    //using loop to find even values at even indices
    int even_sum = 0;
 
    for (int i = 0; i < n; i += 2) {
        if (arr[i] % 2 == 0)
            even_sum += arr[i];
    }
 
    //printing output
    cout << "Sum of even numbers at"
        << " even indices is " << even_sum;
 
    return 0;
}


Java




import java.util.*;
 
public class Main {
 
    public static void main(String[] args) {
 
        int arr[] = {5, 6, 12, 1, 18, 8};
        int n = arr.length;
 
        //using loop to find even values at even indices
        int even_sum = 0;
 
        for (int i = 0; i < n; i += 2) {
            if (arr[i] % 2 == 0)
                even_sum += arr[i];
        }
 
        //printing output
        System.out.println("Sum of even numbers at"
                + " even indices is " + even_sum);
    }
}


Python3




# python 3 implementation to
# find sum of even numbers
# at even indices
 
 
# Driver program to test above
arr = [5, 6, 12, 1, 18, 8]
n=len(arr)
#using list comprehension to find even values at even indices
even_sum = sum([arr[i] for i in range(0,n,2) if arr[i] & 1 != 1])
#printing output
print("Sum of even numbers at",
             "even indices is",
   even_sum)
# This code is contributed by tvsk


C#




using System;
 
public class Program {
    public static void Main()
    {
        int[] arr = { 5, 6, 12, 1, 18, 8 };
        int n = arr.Length;
 
        // using loop to find even values at even indices
        int even_sum = 0;
 
        for (int i = 0; i < n; i += 2) {
            if (arr[i] % 2 == 0)
                even_sum += arr[i];
        }
 
        // printing output
        Console.WriteLine("Sum of even numbers at "
                          + "even indices is " + even_sum);
    }
}


Javascript




// JavaScript Program for the above approach
let arr = [5,6,12,1,18,8];
let n = arr.length;
 
// using loop to find even values at even indices
let even_sum = 0;
 
for(let i = 0; i<n; i+=2){
    if(arr[i] % 2 == 0)
        even_sum += arr[i];
}
 
// printing output
console.log("Sum of even numbers at even indices is " + even_sum);
 
// THIS CODE IS CONTRIBUTED BY YASH AGARWAL(YASHAGARWAL2852002)


Output

Sum of even numbers at even indices is 30

Time Complexity: O(n)
Auxiliary Space: O(1) 



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads