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

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

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

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

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

textual
Листинг программы
using System;
using System.Linq;
 
class Program
{
    static void Main()
    {
        int[] arr = Enumerable.Repeat(new Random(), 50)
        .Select(r =>
        {
            int n = r.Next(-20, 20);
            return n == 0 ? 20 : n;
        })
        .ToArray();
        Console.WriteLine(String.Join(", ", arr));
        int maxLength = 0;
        int curLength = 0;
        int prevSign = 2; // impossible value
        for (int i = 0; i < arr.Length; i++)
        {
            int curSign = Math.Sign(arr[i]);
            if (curSign == prevSign)
            {
                curLength++;
                maxLength = Math.Max(maxLength, curLength);
            }
            else
            {
                curLength = 1;
            }
            prevSign = curSign;
        }
        Console.WriteLine(maxLength);
    }
}

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


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

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

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