Как с помощью рекурсии получить сумму элементов массива?

Вывод элементов массива я реализовал, и то не факт что правильно, но работает, счётчик итерации внутри метода не работал, пришлось его засунуть в аргументы.

static void recurs(int[] mass,int value = 0)
     {
        
         
        if(value >= mass.Length)
         return;     
         Console.Write(mass[value] + " ");
            
         value++;        
         
       recurs(mass,value); 
     
     
     }

Но кое как вывел, по этому принципу пытался сложить элементы для общей суммы. Но вообще не получается ( И такой вопрос, можно ли объявлять переменные, которые будут отвечать за счётчик в теле рекурс метода или они должны быть объявил в аргументах? А это вот нерабочий код для подсчёта суммы(

static void Summ(int[] mass,int a = 0,int summ = 0)
     {
        if(a >= mass.Length)
         return;     
         summ =+ mass[a];
         Console.Write(summ + " "); 
         a++;        
         
       Summ(mass,a,summ);
         
         
         
     }

Ответы (1 шт):

Автор решения: aepot

Как-то так решение будет выглядеть

static int Sum(int[] array, int index = 0)
{
    if (index >= array.Length)
        return 0;
    return array[index] + Sum(array, index + 1);
}

вызов будет выглядеть так

int sum = Sum(array);
→ Ссылка