Как с помощью рекурсии получить сумму элементов массива?
Вывод элементов массива я реализовал, и то не факт что правильно, но работает, счётчик итерации внутри метода не работал, пришлось его засунуть в аргументы.
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);