Program to print Sum of even and odd elements in an array

Last Updated : 22 Jun, 2026

Given an array arr[] of integers, find the sum of values of even and odd positions where a position is index + 1.

Examples: 

Input: arr[] = [1, 2, 3, 4, 5]
Output: [6, 9]
Explanation: Sum of elements at even places i.e. at 2nd and 4th places is (2 + 4 = 6). Sum of elements at odd places i.e at 1st,3rd and 5th places is (1 + 3 + 5 = 9).

Input: arr[] = [1, 1, 1, 1, 1] 
Output: [2, 3]
Explanation: Sum of elements at even places is (1+1=2). Sum of elements at odd places is (1+1+1=3).

Try It Yourself
redirect icon

Check Position Type for Every Element - O(n) Time and O(1) Space

The idea is to find the sum of elements at odd positions and even positions separately. First, traverse the array and add all elements at odd positions to oddSum. Then, traverse the array again and add all elements at even positions to evenSum.

C++
#include <iostream>
#include <vector>
using namespace std;

vector<int> evenOddSum(vector<int> &arr)
{
    int evenSum = 0, oddSum = 0;

    // Find sum of elements at odd positions
    for (int i = 0; i < arr.size(); i++)
    {
        if ((i + 1) % 2 != 0)
            oddSum += arr[i];
    }

    // Find sum of elements at even positions
    for (int i = 0; i < arr.size(); i++)
    {
        if ((i + 1) % 2 == 0)
            evenSum += arr[i];
    }

    return {evenSum, oddSum};
}

// Driver code
int main()
{
    vector<int> arr = {1, 1, 1, 1, 1};

    vector<int> ans = evenOddSum(arr);

    cout << "[" << ans[0] << ", " << ans[1] << "]";

    return 0;
}
Java
import java.util.*;

public class GFG {

    public static int[] evenOddSum(int[] arr)
    {
        int evenSum = 0, oddSum = 0;

        // Find sum of elements at odd positions
        for (int i = 0; i < arr.length; i++) {
            if ((i + 1) % 2 != 0)
                oddSum += arr[i];
        }

        // Find sum of elements at even positions
        for (int i = 0; i < arr.length; i++) {
            if ((i + 1) % 2 == 0)
                evenSum += arr[i];
        }

        return new int[] { evenSum, oddSum };
    }

    public static void main(String[] args)
    {
        int[] arr = { 1, 1, 1, 1, 1 };

        int[] ans = evenOddSum(arr);

        System.out.println("[" + ans[0] + ", " + ans[1]
                           + "]");
    }
}
Python
def evenOddSum(arr):
    evenSum = 0
    oddSum = 0

    # Find sum of elements at odd positions
    for i in range(len(arr)):
        if (i + 1) % 2 != 0:
            oddSum += arr[i]

    # Find sum of elements at even positions
    for i in range(len(arr)):
        if (i + 1) % 2 == 0:
            evenSum += arr[i]

    return [evenSum, oddSum]


# Driver code
if __name__ == "__main__":
    arr = [1, 1, 1, 1, 1]

    ans = evenOddSum(arr)

    print("[{}, {}]".format(ans[0], ans[1]))
C#
using System;
using System.Collections.Generic;

class GFG {
    public List<int> evenOddSum(List<int> arr)
    {
        int evenSum = 0, oddSum = 0;

        // Find sum of elements at odd positions
        for (int i = 0; i < arr.Count; i++) {
            if ((i + 1) % 2 != 0)
                oddSum += arr[i];
        }

        // Find sum of elements at even positions
        for (int i = 0; i < arr.Count; i++) {
            if ((i + 1) % 2 == 0)
                evenSum += arr[i];
        }

        return new List<int>{ evenSum, oddSum };
    }

    static void Main()
    {
        List<int> arr = new List<int>{ 1, 1, 1, 1, 1 };

        GFG obj = new GFG();
        List<int> ans = obj.evenOddSum(arr);

        Console.WriteLine("[" + ans[0] + ", " + ans[1]
                          + "]");
    }
}
JavaScript
function evenOddSum(arr) {
    let evenSum = 0, oddSum = 0;

    // Find sum of elements at odd positions
    for (let i = 0; i < arr.length; i++) {
        if ((i + 1) % 2!= 0)
            oddSum += arr[i];
    }

    // Find sum of elements at even positions
    for (let i = 0; i < arr.length; i++) {
        if ((i + 1) % 2 == 0)
            evenSum += arr[i];
    }

    return [evenSum, oddSum];
}

// Driver code
let arr = [1, 1, 1, 1, 1];
let ans = evenOddSum(arr);
console.log(`[${ans[0]}, ${ans[1]}]`);

Output
[2, 3]

Single Traversal Using Index Parity - O(n) Time and O(1) Space

The idea is to traverse the array only once. For every element, check whether its position (index + 1) is even or odd and add it to the corresponding sum. This avoids traversing the array multiple times.

C++
#include <iostream>
#include <vector>
using namespace std;

vector<int> evenOddSum(vector<int> &arr)
{
    int evenSum = 0, oddSum = 0;

    // Traverse the array once
    for (int i = 0; i < arr.size(); i++)
    {

        // Check position parity
        if ((i + 1) % 2 == 0)
            evenSum += arr[i];
        else
            oddSum += arr[i];
    }

    return {evenSum, oddSum};
}

// Driver code
int main()
{
    vector<int> arr = {1, 1, 1, 1, 1};

    vector<int> ans = evenOddSum(arr);

    cout << "[" << ans[0] << ", " << ans[1] << "]";

    return 0;
}
Java
import java.util.Arrays;

public class GFG {

    public static int[] evenOddSum(int[] arr)
    {
        int evenSum = 0, oddSum = 0;

        // Traverse the array once
        for (int i = 0; i < arr.length; i++) {

            // Check position parity
            if ((i + 1) % 2 == 0)
                evenSum += arr[i];
            else
                oddSum += arr[i];
        }

        return new int[] { evenSum, oddSum };
    }

    // Driver code
    public static void main(String[] args)
    {
        int[] arr = { 1, 1, 1, 1, 1 };

        int[] ans = evenOddSum(arr);

        System.out.println(Arrays.toString(ans));
    }
}
Python
def evenOddSum(arr):
    evenSum = 0
    oddSum = 0

    # Traverse the array once
    for i in range(len(arr)):

        # Check position parity
        if (i + 1) % 2 == 0:
            evenSum += arr[i]
        else:
            oddSum += arr[i]

    return [evenSum, oddSum]

# Driver code
if __name__ == "__main__":
    arr = [1, 1, 1, 1, 1]

    ans = evenOddSum(arr)

    print("[{}, {}]".format(ans[0], ans[1]))
C#
using System;
using System.Collections.Generic;

class GFG {
    public List<int> evenOddSum(List<int> arr)
    {
        int evenSum = 0, oddSum = 0;

        for (int i = 0; i < arr.Count; i++) {

            // position = i + 1
            if ((i + 1) % 2 == 0)
                evenSum += arr[i];
            else
                oddSum += arr[i];
        }

        return new List<int>{ evenSum, oddSum };
    }

    static void Main()
    {
        List<int> arr = new List<int>{ 1, 1, 1, 1, 1 };

        GFG obj = new GFG();
        List<int> ans = obj.evenOddSum(arr);

        Console.WriteLine("[" + ans[0] + ", " + ans[1]
                          + "]");
    }
}
JavaScript
function evenOddSum(arr) {
    let evenSum = 0, oddSum = 0;

    // Traverse the array once
    for (let i = 0; i < arr.length; i++) {

        // Check position parity
        if ((i + 1) % 2 === 0)
            evenSum += arr[i];
        else
            oddSum += arr[i];
    }

    return [evenSum, oddSum];
}

// Driver code
let arr = [1, 1, 1, 1, 1];
let ans = evenOddSum(arr);

console.log('[' + ans[0] + ','+ ans[1] + ']');

Output
[2, 3]
Comment