Найти наибольшее количество идущих подряд элементов одного знака - C# (180879)

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

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

Дан целочисленный массив из n элементов. Элементы массива могут принимать целые значения от – 20 до 20, отличные от 0. Найдите наибольшее количество идущих подряд элементов одного знака.

Решение задачи: «Найти наибольшее количество идущих подряд элементов одного знака»

textual
Листинг программы
  1. using System;
  2. using System.Linq;
  3.  
  4. class Program
  5. {
  6.     static void Main()
  7.     {
  8.         int[] arr = Enumerable.Repeat(new Random(), 50)
  9.         .Select(r =>
  10.         {
  11.             int n = r.Next(-20, 20);
  12.             return n == 0 ? 20 : n;
  13.         })
  14.         .ToArray();
  15.         Console.WriteLine(String.Join(", ", arr));
  16.         int maxLength = 0;
  17.         int curLength = 0;
  18.         int prevSign = 2; // impossible value
  19.         for (int i = 0; i < arr.Length; i++)
  20.         {
  21.             int curSign = Math.Sign(arr[i]);
  22.             if (curSign == prevSign)
  23.             {
  24.                 curLength++;
  25.                 maxLength = Math.Max(maxLength, curLength);
  26.             }
  27.             else
  28.             {
  29.                 curLength = 1;
  30.             }
  31.             prevSign = curSign;
  32.         }
  33.         Console.WriteLine(maxLength);
  34.     }
  35. }

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


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

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

11   голосов , оценка 4.091 из 5

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

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

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