Поиск совпадений в массиве - C#

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

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

Добрый день. нужно реализовать алгоритм на c#. Вводим массив чисел, например: 1,5,4,6,2,12,16,3,8,...,6... На каждом шаге, программа проверяет совпало ли последнее введенное число с одним из предыдущих, т.е. когда мы ввели 6, компьютер увидит, что число 6 уже было и проверит, совпадает ли предпоследнее число с предыдущим перед ранее введенной 6, т.е. равно ли предпоследнее число 4, если не равно, то идем дальше. и так, пока последнее введенное и предпоследнее введенное числа совпадут с двумя подрядыдущими числами из ранее введенных. например, если предпоследнее число из выше указанных равно 4, то мы пишем "ура", а если не равно, то идем дальше. Ввели, допустим, 16, оно совпало с одним из ранее введенных. проверяем предыдущее. это 6. а в уже введенном массиве перед 16 идет 12, значит проверяем дальше. и так, пока 2 числа не повторятся. Сам алгоритм я понимаю, а вот записать его на C# не могу. Предполагаю, что сделать это можно с помощью while(), но не получается реализовать сам алгоритм. Помогите, пожалуйста, с написанием.

Решение задачи: «Поиск совпадений в массиве»

textual
Листинг программы
List<int> intValues = new List<int>();
            int curValue = 0, x;
            while(true)
            {
                Console.Write("\nВведите число: ");
                try{ curValue = Convert.ToInt32(Console.ReadLine()); }
                catch { break; }
                // Засекаем последнее вхождение "введенного" числа
                x = intValues.LastIndexOf(curValue);
                // Проверка что последнее вхождение "введенного" числа -
                // не первый элемент массива и в массиве как минимум 4 числа
                if ((x > 0) && (intValues.Count > 2))
                    // Проверяем на равенство "предпоследние" числа двух "пар"
                    if (intValues[x-1] == intValues[intValues.Count-1])
                    {
                        Console.WriteLine("Ура!");
                    }
                // Не забываем внести в массив "введенное" число :)
                intValues.Add(curValue);
            }

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


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

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

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