Посчитать сумму и количество элементов массива используя рекурсию - C#

Узнай цену своей работы

Формулировка задачи:

Задана последовательность положительных чисел, признаком конца которых служит отрицательное число. Используя рекурсию, подсчитать количество чисел и их сумму. Я построил такой массив
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int N, n = 0;
            Random r = new Random();
            N = r.Next(0,10);
            Console.WriteLine("N = {0}",N);
            int[] M = new int[N];
            do
            {
                int Mm = r.Next(-1, 10);
                M[n] = Mm;
                Console.WriteLine("№{0}: {1,10}", n, Mm);
                n++;
                if (Mm<0)
                {
                    N = n;
                }
            } while (n < N);
            Console.ReadLine();
        }
        
    }
}
По сути посчитать сумму и количество элементов проще простого, но нужно это сделать используя рекурсию, а тут я слаб. Если не сложно помогите и желательно с описанием.

Решение задачи: «Посчитать сумму и количество элементов массива используя рекурсию»

textual
Листинг программы
static void Main(string[] args)
{
    int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, -10};
    var numSum = GetNumSum(arr);
    Console.WriteLine("Количество положительных = {0}\r\nСумма = {1}", numSum.Key, numSum.Value);
}
 
private static KeyValuePair<int, int> GetNumSum(IEnumerable<int> source)
{
    return GetNumSum(source.GetEnumerator());
}
 
private static KeyValuePair<int, int> GetNumSum(IEnumerator<int> enumerator)
{
    bool next = enumerator.MoveNext();
    if (!next || enumerator.Current < 0)
    {
        return new KeyValuePair<int, int>(0, 0);
    }
    var current = enumerator.Current;
    var numSum = GetNumSum(enumerator);
    return new KeyValuePair<int, int>(numSum.Key + 1, numSum.Value + current);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5
Похожие ответы