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

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

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

Задана последовательность положительных чисел, признаком конца которых служит отрицательное число. Используя рекурсию, подсчитать количество чисел и их сумму. Я построил такой массив
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace ConsoleApplication1
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. int N, n = 0;
  13. Random r = new Random();
  14. N = r.Next(0,10);
  15. Console.WriteLine("N = {0}",N);
  16. int[] M = new int[N];
  17. do
  18. {
  19. int Mm = r.Next(-1, 10);
  20. M[n] = Mm;
  21. Console.WriteLine("№{0}: {1,10}", n, Mm);
  22. n++;
  23. if (Mm<0)
  24. {
  25. N = n;
  26. }
  27. } while (n < N);
  28. Console.ReadLine();
  29. }
  30. }
  31. }
По сути посчитать сумму и количество элементов проще простого, но нужно это сделать используя рекурсию, а тут я слаб. Если не сложно помогите и желательно с описанием.

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

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

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


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

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

9   голосов , оценка 4.222 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы