Поиск совпадений в массиве - 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); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д