Product of Array using Recursion

Easy Recursion
Multiply all elements of an array using recursion.

Sample input

[1, 2, 3, 4]

Sample output

24

Solution

def array_product(arr, i=0):
    if i == len(arr):
        return 1
    return arr[i] * array_product(arr, i + 1)

print(array_product([1, 2, 3, 4]))
function arrayProduct(arr, i = 0) {
  if (i === arr.length) return 1;
  return arr[i] * arrayProduct(arr, i + 1);
}

console.log(arrayProduct([1, 2, 3, 4]));
public class Main {
    static int arrayProduct(int[] arr, int i) {
        if (i == arr.length) return 1;
        return arr[i] * arrayProduct(arr, i + 1);
    }

    public static void main(String[] args) {
        System.out.println(arrayProduct(new int[]{1, 2, 3, 4}, 0));
    }
}
fun arrayProduct(arr: IntArray, i: Int): Int {
    if (i == arr.size) return 1
    return arr[i] * arrayProduct(arr, i + 1)
}

fun main() {
    println(arrayProduct(intArrayOf(1, 2, 3, 4), 0))
}
func arrayProduct(_ arr: [Int], _ i: Int) -> Int {
    if i == arr.count { return 1 }
    return arr[i] * arrayProduct(arr, i + 1)
}

print(arrayProduct([1, 2, 3, 4], 0))
int arrayProduct(List<int> arr, int i) {
  if (i == arr.length) return 1;
  return arr[i] * arrayProduct(arr, i + 1);
}

void main() {
  print(arrayProduct([1, 2, 3, 4], 0));
}
#include <iostream>
#include <vector>
using namespace std;

int arrayProduct(const vector<int>& arr, int i) {
    if (i == (int) arr.size()) return 1;
    return arr[i] * arrayProduct(arr, i + 1);
}

int main() {
    cout << arrayProduct({1, 2, 3, 4}, 0) << endl;
    return 0;
}
#include <stdio.h>

int arrayProduct(int *arr, int n, int i) {
    if (i == n) return 1;
    return arr[i] * arrayProduct(arr, n, i + 1);
}

int main() {
    int arr[] = {1, 2, 3, 4};
    printf("%d\n", arrayProduct(arr, 4, 0));
    return 0;
}