Coding Exercise: Array Sum Using Recursion

Write recursive function to sum all elements in array: [1,2,3,4] → 10.

Two approaches: index-based and pointer-based.

Problem Statement

Input: Array arr, size n

Output: Sum of all elements

Examples: [1,2,3] → 6, [5] → 5, [] → 0

Approach 1: Index-Based (Recommended)

sum(arr, n) = arr[0] + sum(arr+1, n-1)

C++
Index-based array sum
#include <iostream>
using namespace std;

int arraySum(int arr[], int n) {
    // Base case: empty array
    if (n <= 0) return 0;
    
    // Recursive case
    return arr[0] + arraySum(arr+1, n-1);
}

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int n = 5;
    cout << "Sum = " << arraySum(arr, n) << endl;
    return 0;
}

Approach 2: Index Parameter

C++
Index parameter approach
int arraySum(int arr[], int n, int index = 0) {
    if (index >= n) return 0;
    return arr[index] + arraySum(arr, n, index+1);
}

Dry Run: [3, 1, 4, 1, 5], n=5

TEXT
Step-by-step execution
arraySum([3,1,4,1,5], 5)
→ 3 + arraySum([1,4,1,5], 4)
→ 3 + 1 + arraySum([4,1,5], 3)
→ 3 + 1 + 4 + arraySum([1,5], 2)
→ 3 + 1 + 4 + 1 + arraySum([5], 1)
→ 3 + 1 + 4 + 1 + 5 + arraySum([], 0)
→ 3+1+4+1+5+0 = 14 ✓

Test Cases

TEXT
Expected outputs
[1,2,3] → 6
[5] → 5
[] → 0
[-1,1] → 0
[10,20,30] → 60

Complexity Analysis

Time: O(n) - visit each element once

Space: O(n) - recursion stack depth

Practice Variations

1. Find maximum element recursively

2. Count occurrences of target value

3. Array rotation using recursion

Conclusion

Mastered array recursion! Array+1 technique is powerful.

Next: Binary search or merge sort recursively.